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

标签 c++ qt5 gdi+ dwm

在 Mac 上有一个窗口标志/调用:WindowTitleHidden + [nativeWindow setTitlebarAppearsTransparent:YES] 这基本上使标题栏“嵌入”在窗口本身内,而不是创建一个“容纳”窗口的框架。像这样:

enter image description here

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

Windows 有类似的东西吗?

像这样:

enter image description here

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

最佳答案

据我所知,您必须自己绘制它们,然后回复 Windows 发送到您的窗体以查询鼠标位置的 WM_NCHITTEST 消息。通过这种方式,您可以告诉 Windows 鼠标位于最大化按钮上,尽管 Windows 本身并没有在那里绘制鼠标。

绘画可以借助 VisualStyleRenderer 或 ControlPaint 完成。

我希望这些问题能为您指明进一步的方向:

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

Winforms - WM_NCHITEST message for click on control

关于c++ - 带有最小/最大/关闭按钮的无框窗口 (Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41029152/

相关文章:

c++ - MFT 的大小与 MFT 的解析

c++ - 当您只需要什么时,首选的 STL 集合是什么?

c++ - c++中的引用解释

c++ - 是否可以在 QStyledItemDelegate 中为 QIcon 的不透明度设置动画?

qt - 如何用qt向给定的串口写入数据?

c# - .Net 等效于 ScaleHeight 和 Scalewidth

c# - 在 .NET 中绘制文本

ffmpeg - 使用 FFmpeg AutoGen 保存到位图适用于 Windows,但不适用于 Linux

java - 将函数指针的 C 结构体转换为 JNA 代码

c++ - Qt 5 构建错误 : extra characters after test expression