如何关闭DwmExtendFrameIntoClientArea?

时间:2012-12-09 00:12:54

标签: windows dwm

在我在窗口上调用DwmExtendFrameIntoClientArea后,如何在保持Aero模式的同时再将其关闭?

我试图调用DwmExtendFrameIntoClientArea,所有边距都设置为0,这似乎部分工作,除了我的窗口客户区的背景全黑并展示重绘工件。

我正在使用Qt,在执行此操作后我在窗口上调用setAttribute(Qt::WA_TranslucentBackground, false),但似乎没有效果。重置窗口框后,如何才能正确重绘客户区?

1 个答案:

答案 0 :(得分:4)

简单的错误 - 我还需要将Qt::WA_NoSystemBackground设置为false,因此Qt实际上会绘制窗口...

因此,关闭扩展帧的过程是:

  • 调用DwmExtendFrameIntoClientArea(误导,对吗?)所有边距设置为0
  • 在窗口上设置WA_TranslucentBackground = false(或非Qt等效值)
  • 在窗口上设置WA_NoSystemBackground = false(或非Qt等效值)