带最小/最大/关闭按钮的无框窗口(Windows)

时间:2016-12-07 23:22:04

标签: c++ qt5 gdi+ dwm

在Mac上有一个窗口标记/调用:WindowTitleHidden + [nativeWindow setTitlebarAppearsTransparent:YES] 这基本上使标题栏成为"嵌入"在窗口本身内,而不是创建一个框架,而不是#34;窗户。像这样:

enter image description here

请注意最小化,最大化和关闭按钮与应用程序的小部件位于同一行。

Windows有类似内容吗?

像这样:

enter image description here

代码:https://github.com/alexandernst/TrueFramelessWindow

1 个答案:

答案 0 :(得分:1)

AFAIK,您必须自己绘制它们,然后回复Windows发送到您的表单的WM_NCHITTEST消息,以查询鼠标所在的位置。这样你就可以告诉Windows鼠标位于一个比如最大化的按钮上,虽然Windows本身并没有在那里画一个。

可以在VisualStyleRenderer或ControlPaint的帮助下完成绘画。

我希望这些问题能为您提供更多信息:

Winforms: Add a close "x" button in a UserControl

Winforms - WM_NCHITEST message for click on control