Windows上Qt的无边框窗口,支持原生function:aero捕捉,DWMresize和最小化

我试图在Windows上Qt中创build一个支持原生function的无边界窗口:航空捕捉,DWMresize和最小化,摇动等。像Office 2013或Visual Studio 2012.但他们是用wpf写的。 在wpf和纯WinApi中有很多例子,但是我没能find任何Qt的例子。

最近我find了暴雪的Battle.net App( 截图 )。 他们正在使用QT 4.8.5和他们的主窗口的外观和行为完全一样,我想在我的应用程序。

有谁知道这是怎么做到的吗?

谢谢你的帮助。

我找到了解决这个问题的办法。

我没有使用Qt主窗口,而是创建了一个简单的WinAPI无边框窗口,就像在这个讨论中一样 。 然后我从QtWinMigrate项目中添加了QWinWidget,并用它填充窗口。

因此,主窗口和可调整大小的边缘由WinAPI处理,而主窗口内的所有内容都由QWinWidget处理。 而使用QWinWidget,你可以像在任何其他Qt应用程序一样创建Qt gui。

这是GitHub上的一个小例子项目。

也许这可能会帮助你,Windows特定的Qt类WinExtras

http://qt-project.org/doc/qt-5/qtwin.html

http://qt-project.org/doc/qt-5/qtwinextras-module.html

此外,您可以使用QT Quick 2.0来设计类似于WPF的UI