【发布时间】:2014-02-25 14:24:10
【问题描述】:
我正在使用 C++ 和 Winapi 编写一个 GUI 程序,并且我希望我的窗口具有自定义边框。 Windows 桌面上的 Visual Studio 2013 做到了这一点,用自己的方案替换了典型的窗口边框,同时仍然像普通窗口一样运行,带有关闭、最小化和恢复按钮,并且可以移动。
这样做的一个冗长的方法是创建一个具有WS_POPUP 样式的窗口并使用碰撞检测拦截鼠标事件。但是,考虑到 Microsoft 本身已经创建了具有不同 GUI 样式的程序,我想到可能有一种更标准化的方式来执行此操作。需要明确的是,我对使用 QT 或 GTK 等 3rd 方 API 不感兴趣。我只想用微软提供的库来做这件事。考虑到这些限制,有没有其他方法可以做到这一点?
【问题讨论】:
-
不确定你想要什么,但有 2 个指针:WM_NC... 和桌面窗口管理器。好的文档:msdn.microsoft.com/en-us/library/windows/desktop/…
-
@Cheersandhth.-Alf 这似乎就是我要找的。不过,如果您不介意,还有一个问题:我如何获得任务栏未覆盖的桌面区域?由于某种原因,在使用 winapi 工作了一年之后,我仍然不知道这一点。
-
哦。我不记得了。我猜是GetSystemMetrics?只是谷歌它。 ;-)
-
@Cheersandhth.-Alf 找到了 - social.msdn.microsoft.com/Forums/vstudio/en-US/…
标签: c++ winapi visual-studio-2013