Windows上Qt中的无边框窗口,支持本机功能:aero snap,DWM调整大小和最小化

时间:2014-03-03 22:02:55

标签: c++ windows qt aero borderless

我正在尝试在Windows上的Qt中创建一个无边框窗口,它支持本机功能:aero snap,DWM调整大小和最小化,抖动等。 与Office 2013或Visual Studio 2012一样。但它们是用wpf编写的。 在wpf和纯WinApi中有很多例子,但是我找不到任何Qt例子。

最近我发现了暴雪的Battle.net App(screenshot)。他们正在使用QT 4.8.5,他们的主窗口在我的应用程序中看起来和行为完全一样。

有谁知道怎么做?

感谢您的帮助。

2 个答案:

答案 0 :(得分:7)

我找到了解决此问题的方法。

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

结果,主窗口和可调整大小的边缘由WinAPI处理,主窗口内的所有内容都由QWinWidget处理。使用QWinWidget,您可以在任何其他Qt应用程序中创建Qt gui。

Here is a small example project on GitHub.

答案 1 :(得分:1)

也许这可能对你有帮助,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