【问题标题】:Can I change the thickness of the border of a window with MFC?我可以使用 MFC 更改窗口边框的粗细吗?
【发布时间】:2009-01-04 09:21:33
【问题描述】:

通常情况下,窗口的厚度为 4 像素,可以通过 GetSystemMetrics 方法获取。我可以更改它的值吗,例如 2 个像素?

非常感谢!

【问题讨论】:

    标签: mfc border thickness


    【解决方案1】:

    简单的回答:不。不适用于特定的窗口。

    复杂的答案:边框是作为窗口“非客户端”区域的一部分绘制的。这一切都由默认处理(即 DefWindowProc)以及标题、最小化、最大化按钮等(在后台)处理。您可以通过处理 WM_NCPAINT 消息来覆盖它。然后,您将负责绘制窗口的整个非客户区。您还需要处理 WM_NCCALCSIZE 消息,以便 Windows 知道有多少剩余空间可以分配给您的客户区。

    或者,您可以将窗口的边框样式设置为无。这将允许 Windows 为您绘制标题,尽管看起来可能会略有不同。不幸的是,这样做会失去拖动调整大小的功能。为此,您需要处理 WM_NCHITTEST 消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-28
      相关资源
      最近更新 更多