【发布时间】:2013-05-21 20:39:29
【问题描述】:
我正在 Windows 上制作一个带有无边框窗口的应用程序。但是,由于窗口是无边框的,所以我没有区域阴影、捕捉、最小化动画或抖动。我环顾四周,发现没有解释如何实现这一点的网站。但是,我知道这是可能的,因为 Office 2013、Visual Studio 2012 和 Steam 都具有这些功能并且是无边界的。我专门使用 QT 和 C++,但如果你已经为另一个窗口库解决了这个问题,我也想听听你的解决方案。任何一个。我所说的区域阴影并不是指两侧的阴影,而是指所有活动的本地区域窗口应用程序的所有侧面的发光阴影。
【问题讨论】:
-
我阅读了 DWMWA_ALLOW_NCPAINT。所以 2013 和 VS2012 的字在边界上画出来隐藏它?
-
很多人都在寻找这个问题的答案,正如我所看到的。不久前我是他们中的一员。我尝试了已经在这篇文章中回答的实现,但由于它们不完全适合的原因。经过一段时间的谷歌搜索和修改 deimos1877 的 BodrelessWindow 示例,我最终为 Qt 找到了更轻量级的解决方案。这是一个只有 QMainWindow 的简单 Qt 项目。随意使用并根据您的需要采用它。主要优点是 - Qt 窗口和本机 WinAPI 之间没有代理类,在 Aero 关闭时没有窗口标题闪烁。 bitbucket.org/artem_bodrin/framless
标签: c++ windows qt aero borderless