WinAPI - 自定义大小边框(WS_THICKFRAME)

时间:2013-10-19 17:37:49

标签: c++ winapi customization sizing

我不喜欢原生尺寸边框的样子:

See the blue border ?

我希望有类似这种花式紫色边框的东西: enter image description here

我应该手动实现自己的大小调整边框,还是应该继续使用 WS_THICKFRAME窗口样式并自定义它?

如果我可以自定义它,我希望它也可以在没有讨厌的黑客的情况下完成......

2 个答案:

答案 0 :(得分:0)

我认为你应该实现自己的重绘过程(例如在底部绘制一个紫色矩形,然后在角落里画一个图标)。如果你想让你的窗口类似于VS2013窗口,那么你应该使用WS_POPUP样式然后实现自己的重绘例程。如果您想自定义窗口的表单,可以使用区域(SetWindowRgn()CreateRectRgn()CreateRoundRectRgn()CreateEllipticRgn()CreatePolygonRgn()等。)从广义上讲,使用WinAPI你可以做任何事情,但你只限于WinAPI吗?最好使用MFC或Windows Forms来更轻松地创建窗口界面。

答案 1 :(得分:0)

您可以通过在窗口类型标志中指定WS_POPUP标志来创建没有边框和标题栏的窗口。

你的WM_NCHITTEST消息的处理程序你必须检查你的窗口中某个像素真正属于哪个部分(例如树脂化框架)并返回该部分的代码。

缺点:您必须自己绘制整个窗口内容(包括标题等)。