【问题标题】:Replicate Visual Studio 2013 custom GUI in winapi在 winapi 中复制 Visual Studio 2013 自定义 GUI
【发布时间】: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?只是谷歌它。 ;-)

标签: c++ winapi visual-studio-2013


【解决方案1】:

看看这个example of a custom drawn window

为了获得“自定义绘制窗口”的效果,您需要使用WM_NCPAINT 绘制窗口的非客户端部分。

以下是一些相关问题:

【讨论】:

    猜你喜欢
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    相关资源
    最近更新 更多