2012-12-09 20 views
3

在窗口上調用DwmExtendFrameIntoClientArea之後,如何在保持Aero模式時再次關閉它?如何關閉DwmExtendFrameIntoClientArea?

我試圖調用DwmExtendFrameIntoClientArea的所有邊距設置爲0,這似乎部分工作,除了我的窗口的客戶區的背景是全黑的,並且展品正在重繪工件。

我正在使用Qt,並且在完成此操作後我在窗口上調用setAttribute(Qt::WA_TranslucentBackground, false),但它似乎沒有效果。如何在重置窗口框架後正確重繪客戶區?

回答

4

簡單的錯誤 - 我還需要設置Qt::WA_NoSystemBackground爲false,這樣的Qt實際上繪製窗口...

因此,該程序關閉擴展的框架是:

  • 呼叫DwmExtendFrameIntoClientArea(誤導,是嗎?)與窗口上=假(或不Qt的等效)
  • 集WA_NoSystemBackground =假在窗口上(或非Qt的等效設置爲0
  • 集WA_TranslucentBackground所有邊距)