我可以用MFC更改窗口边框的厚度吗?

我可以用MFC更改窗口边框的厚度吗?,mfc,border,thickness,Mfc,Border,Thickness,通常,窗口的厚度为4像素,可以通过GetSystemMetrics方法检索。我是否可以更改其值,例如2像素 多谢各位 简单的回答是:不,不是针对特定的窗口 复杂的答案:边框是作为窗口“非客户端”区域的一部分绘制的。所有这些都由默认处理(即DefWindowProc)以及标题、最小化、最大化按钮等处理(在引擎盖下)。您可以通过处理WM_NCPAINT消息来覆盖这些。然后,您将负责绘制窗口的整个非客户区。您还需要处理WM_NCCALCSIZE消息,以便Windows知道要为客户端区域提供多少剩余空间

通常,窗口的厚度为4像素,可以通过GetSystemMetrics方法检索。我是否可以更改其值,例如2像素


多谢各位

简单的回答是:不,不是针对特定的窗口

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

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