怎么去掉标题栏上的系统菜单,并保留最小化关闭等按钮

大树学长 2019-11-13 03:53:08
在标题栏上右击或者单击左边的图片都会弹出系统菜单,因为要保留标题栏本身的功能,最小化、关闭还要图标显示都需要保留,查到的方法都不行,有什么简单办法?
...全文
266 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
#include <windows.h>
HWND hwnd = FindWindow(NULL, "你的窗口标题");
int style = GetWindowLong(hwnd , GWL_STYLE);
style &= ~(WS_SYSMENU);
SetWindowLong(hwnd , GWL_STYLE, style);
无论是Windows、Qt C++ 还是QML 都会有一定问题 采用 setWindowFlags(windowFlags() & ~Qt::WindowSystemMenuHint) 或者 flags = flags & ~Qt.WindowSystemMenuHint 都会使标题栏只剩title或者无效。 标题栏和边框是属于系统的,非要达到禁用标题栏菜单的话,我觉得 1.去拦截系统鼠标事件 2.做一个Qt的标题栏,隐藏系统标题栏 相对来说自己做一个是最简单的了。
lishadowl 2019-11-13
  • 打赏
  • 举报
回复
如果你用的QML(代码为JavaScript风格),那么你可以把创建的Window属性加一个flags: Qt.FramelessWindowHint,变成无边框窗口,然后自己重新画标题栏,如果是QSS(代码为C++风格),你可以参考这一篇https://blog.csdn.net/dpsying/article/details/77825629,
至于别的方法……如果我没弄错标题栏这个东西是Windows自带的……反正我没专门学过取消这俩功能,去掉边框啊什么的自己重新画一个也不算特别难(QML的话可以算很简单),如果你不满意的话……我也不知道有没有更简单的了

16,211

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧