Bringer-of-Light/Qt-Nice-Frameless-Window

win7 home basic版本下无法使用

zhizhiyuedu opened this issue · 5 comments

谢谢你做的这么好的一个lib,在win10上体验非常非常棒。
目前的实现依赖dwmapi.dll
而在win7 home basic版本里是没有这个dll的,所以在win7 home basic版本下用的时候,鼠标移动到关闭按钮上时会出现操作系统自带的关闭按钮。

另外,能否发出你微信或支付宝的收款码。想为你买杯咖啡,表达谢意

@zhizhiyuedu
在CFramelessWindow的构造函数里,有这一行代码

setWindowFlag(Qt::WindowSystemMenuHint, true);

这行代码的主要目的,是为了引入Alt+Space键触发的系统菜单;
删除这一行代码,可能可以解决你遇到的问题;

另外,在包含的这一堆文件里面,
#include <windows.h> #include <WinUser.h> #include <windowsx.h> #include <dwmapi.h> #include <objidl.h> #include <gdiplus.h> #include <GdiPlusColor.h> #pragma comment (lib,"Dwmapi.lib") #pragma comment (lib,"user32.lib")
可能有些不是必要的,我并没有充分测试,你可以看一下能不能去掉一些;

至于咖啡嘛就免了,不过可以加个好友的,知乎主页: https://www.zhihu.com/people/sunseo/activities

解决了,万分感谢

你好,我用QT5.9.0在win7上也出现了这个问题,按照您说的将setWindowFlags(windowFlags() | Qt::Window | Qt::FramelessWindowHint | Qt::WindowSystemMenuHint);改为setWindowFlags(windowFlags() | Qt::Window | Qt::FramelessWindowHint);还是存在这个问题,请问我还可以怎么解决这个问题呢

改为 setWindowFlags( Qt::FramelessWindowHint);就正常了