4

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

非常感谢!

4

1 回答 1

8

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

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

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

于 2009-01-04T09:35:30.780 回答