wangwenx190 / framelesshelper

Project moved to: https://github.com/stdware/qwindowkit Cross-platform window customization framework for Qt Widgets and Qt Quick. Supports Windows, Linux and macOS.
MIT License
846 stars 203 forks source link

将例子中的标题栏隐藏后会看到系统标题栏 #287

Closed zhiyiYo closed 1 year ago

zhiyiYo commented 1 year ago

环境信息

复现方式

framelesshelper/examples/widget/widget.cppm_titleBar 隐藏掉,可以看到系统标题栏:

image

wangwenx190 commented 1 year ago

此为已知问题,因为Windows11上我默认会开启云母(mica)特效,如果你把整个窗口弄透明,不知为何就会看见原本的标题栏按钮。解决方案也很简单,就是关闭云母特效,换成亚克力特效或者我自己模拟的模糊特效。

wangwenx190 commented 1 year ago

2.3.4 以上的版本编译报错几个宏未声明,不知道如何解决,恳请作者大大指教

具体什么错误呢,麻烦贴出来

zhiyiYo commented 1 year ago

报错内容如下:

D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:361:26: error: 'WM_GESTURE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_GESTURE)
                          ^~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:361:26: note: suggested alternative: 'GL_TEXTURE'
     DEFINE_WIN32_MESSAGE(WM_GESTURE)
                          ^~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:362:26: error: 'WM_GESTURENOTIFY' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_GESTURENOTIFY)
                          ^~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:362:26: note: suggested alternative: 'WM_GESTURENOTIFIED'
     DEFINE_WIN32_MESSAGE(WM_GESTURENOTIFY)
                          ^~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:420:26: error: 'WM_POINTERDEVICECHANGE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERDEVICECHANGE)
                          ^~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:420:26: note: suggested alternative: 'WM_POINTERDEVICEADDED'
     DEFINE_WIN32_MESSAGE(WM_POINTERDEVICECHANGE)
                          ^~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:421:26: error: 'WM_POINTERDEVICEINRANGE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERDEVICEINRANGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:421:26: note: suggested alternative: 'WM_POINTERDEVICEADDED'
     DEFINE_WIN32_MESSAGE(WM_POINTERDEVICEINRANGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:422:26: error: 'WM_POINTERDEVICEOUTOFRANGE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERDEVICEOUTOFRANGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:422:26: note: suggested alternative: 'WM_POINTERDEVICEADDED'
     DEFINE_WIN32_MESSAGE(WM_POINTERDEVICEOUTOFRANGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:423:26: error: 'WM_TOUCH' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_TOUCH)
                          ^~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:423:26: note: suggested alternative: 'WM_POWER'
     DEFINE_WIN32_MESSAGE(WM_TOUCH)
                          ^~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:424:26: error: 'WM_NCPOINTERUPDATE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_NCPOINTERUPDATE)
                          ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:424:26: note: suggested alternative: 'E_NOINTERFACE'
     DEFINE_WIN32_MESSAGE(WM_NCPOINTERUPDATE)
                          ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:425:26: error: 'WM_NCPOINTERDOWN' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_NCPOINTERDOWN)
                          ^~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:425:26: note: suggested alternative: 'WM_NCXBUTTONDOWN'
     DEFINE_WIN32_MESSAGE(WM_NCPOINTERDOWN)
                          ^~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:426:26: error: 'WM_NCPOINTERUP' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_NCPOINTERUP)
                          ^~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:426:26: note: suggested alternative: 'WM_NCPAINT'
     DEFINE_WIN32_MESSAGE(WM_NCPOINTERUP)
                          ^~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:427:26: error: 'WM_POINTERUPDATE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERUPDATE)
                          ^~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:427:26: note: suggested alternative: 'POLEUPDATE'
     DEFINE_WIN32_MESSAGE(WM_POINTERUPDATE)
                          ^~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:428:26: error: 'WM_POINTERDOWN' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERDOWN)
                          ^~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:428:26: note: suggested alternative: 'WM_PAINTICON'
     DEFINE_WIN32_MESSAGE(WM_POINTERDOWN)
                          ^~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:429:26: error: 'WM_POINTERUP' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERUP)
                          ^~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:429:26: note: suggested alternative: 'E_POINTER'
     DEFINE_WIN32_MESSAGE(WM_POINTERUP)
                          ^~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:430:26: error: 'WM_POINTERENTER' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERENTER)
                          ^~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:430:26: note: suggested alternative: 'WM_PRINTCLIENT'
     DEFINE_WIN32_MESSAGE(WM_POINTERENTER)
                          ^~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:431:26: error: 'WM_POINTERLEAVE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERLEAVE)
                          ^~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:431:26: note: suggested alternative: 'WM_MOUSELEAVE'
     DEFINE_WIN32_MESSAGE(WM_POINTERLEAVE)
                          ^~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:432:26: error: 'WM_POINTERACTIVATE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERACTIVATE)
                          ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:432:26: note: suggested alternative: 'WM_MOUSEACTIVATE'
     DEFINE_WIN32_MESSAGE(WM_POINTERACTIVATE)
                          ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:433:26: error: 'WM_POINTERCAPTURECHANGED' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERCAPTURECHANGED)
                          ^~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:433:26: note: suggested alternative: 'WM_CAPTURECHANGED'
     DEFINE_WIN32_MESSAGE(WM_POINTERCAPTURECHANGED)
                          ^~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:434:26: error: 'WM_TOUCHHITTESTING' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_TOUCHHITTESTING)
                          ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:434:26: note: suggested alternative: 'WM_NCHITTEST'
     DEFINE_WIN32_MESSAGE(WM_TOUCHHITTESTING)
                          ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:435:26: error: 'WM_POINTERWHEEL' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERWHEEL)
                          ^~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:435:26: note: suggested alternative: 'WM_MOUSEHWHEEL'
     DEFINE_WIN32_MESSAGE(WM_POINTERWHEEL)
                          ^~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:436:26: error: 'WM_POINTERHWHEEL' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERHWHEEL)
                          ^~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:436:26: note: suggested alternative: 'WM_MOUSEHWHEEL'
     DEFINE_WIN32_MESSAGE(WM_POINTERHWHEEL)
                          ^~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:437:26: error: 'WM_POINTERROUTEDTO' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERROUTEDTO)
                          ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:437:26: note: suggested alternative: 'WM_POINTERDEVICEADDED'
     DEFINE_WIN32_MESSAGE(WM_POINTERROUTEDTO)
                          ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:438:26: error: 'WM_POINTERROUTEDAWAY' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERROUTEDAWAY)
                          ^~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:438:26: note: suggested alternative: 'LPINTERFACEDATA'
     DEFINE_WIN32_MESSAGE(WM_POINTERROUTEDAWAY)
                          ^~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:439:26: error: 'WM_POINTERROUTEDRELEASED' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERROUTEDRELEASED)
                          ^~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:439:26: note: suggested alternative: 'WM_POINTERDEVICEDELETED'
     DEFINE_WIN32_MESSAGE(WM_POINTERROUTEDRELEASED)
                          ^~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:457:26: error: 'WM_DPICHANGED_BEFOREPARENT' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_DPICHANGED_BEFOREPARENT)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:457:26: note: suggested alternative: 'WM_DPICHANGED'
     DEFINE_WIN32_MESSAGE(WM_DPICHANGED_BEFOREPARENT)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:458:26: error: 'WM_DPICHANGED_AFTERPARENT' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_DPICHANGED_AFTERPARENT)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:458:26: note: suggested alternative: 'WM_DPICHANGED'
     DEFINE_WIN32_MESSAGE(WM_DPICHANGED_AFTERPARENT)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:485:26: error: 'WM_DWMNCRENDERINGCHANGED' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_DWMNCRENDERINGCHANGED)
                          ^~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:485:26: note: suggested alternative: 'WCA_NCRENDERING_EXILED'
     DEFINE_WIN32_MESSAGE(WM_DWMNCRENDERINGCHANGED)
                          ^~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:487:26: error: 'WM_DWMWINDOWMAXIMIZEDCHANGE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_DWMWINDOWMAXIMIZEDCHANGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:487:26: note: suggested alternative: 'WM_DWMTHUMBNAILSIZECHANGED'
     DEFINE_WIN32_MESSAGE(WM_DWMWINDOWMAXIMIZEDCHANGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:488:26: error: 'WM_DWMSENDICONICTHUMBNAIL' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_DWMSENDICONICTHUMBNAIL)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:489:26: error: 'WM_DWMSENDICONICLIVEPREVIEWBITMAP' was not declared in this scope        
     DEFINE_WIN32_MESSAGE(WM_DWMSENDICONICLIVEPREVIEWBITMAP)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:490:26: error: 'WM_GETTITLEBARINFOEX' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_GETTITLEBARINFOEX)
                          ^~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:490:26: note: suggested alternative: 'LPTITLEBARINFO'
     DEFINE_WIN32_MESSAGE(WM_GETTITLEBARINFOEX)
                          ^~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp: In function 'bool wangwenx190::FramelessHelper::isNonClientMessage(UINT)':
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:931:29: error: 'WM_NCPOINTERUPDATE' was not declared in this scope
             || ((message >= WM_NCPOINTERUPDATE) && (message <= WM_NCPOINTERUP))
                             ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:931:29: note: suggested alternative: 'E_NOINTERFACE'
             || ((message >= WM_NCPOINTERUPDATE) && (message <= WM_NCPOINTERUP))
                             ^~~~~~~~~~~~~~~~~~
                             E_NOINTERFACE
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:931:64: error: 'WM_NCPOINTERUP' was not declared in this scope
             || ((message >= WM_NCPOINTERUPDATE) && (message <= WM_NCPOINTERUP))
                                                                ^~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:931:64: note: suggested alternative: 'WM_NCPAINT'
             || ((message >= WM_NCPOINTERUPDATE) && (message <= WM_NCPOINTERUP))
                                                                ^~~~~~~~~~~~~~
                                                                WM_NCPAINT
In file included from D:/C++_Study/GUI/framelesshelper/src/core/sysapiloader_p.h:1,
                 from D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:32:
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp: In function 'wangwenx190::FramelessHelper::Global::DpiAwareness wangwenx190::FramelessHelper::Utils::getDpiAwarenessForCurrentProcess(bool*)':
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:2880:56: error: 'IsProcessDPIAware' was not declared in this scope
         const BOOL isAware = API_CALL_FUNCTION(user32, IsProcessDPIAware);
                                                        ^~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/include/FramelessHelper/Core/private/sysapiloader_p.h:68:80: note: in definition of macro 'API_CALL_FUNCTION'   
   ((FRAMELESSHELPER_PREPEND_NAMESPACE(SysApiLoader)::instance()->get<decltype(&func)>(k##lib, k##func))(__VA_ARGS__))
                                                                                ^~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:2880:56: note: suggested alternative: 'kIsProcessDPIAware'
         const BOOL isAware = API_CALL_FUNCTION(user32, IsProcessDPIAware);
                                                        ^~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/include/FramelessHelper/Core/private/sysapiloader_p.h:68:80: note: in definition of macro 'API_CALL_FUNCTION'   
   ((FRAMELESSHELPER_PREPEND_NAMESPACE(SysApiLoader)::instance()->get<decltype(&func)>(k##lib, k##func))(__VA_ARGS__))
                                                                                ^~~~
D:/C++_Study/GUI/framelesshelper/include/FramelessHelper/Core/private/sysapiloader_p.h:68:102: error: no matching function for call to 'wangwenx190::FramelessHelper::SysApiLoader::get<<expression error> >(const QLatin1String&, const QLatin1String&)'
   ((FRAMELESSHELPER_PREPEND_NAMESPACE(SysApiLoader)::instance()->get<decltype(&func)>(k##lib, k##func))(__VA_ARGS__))
                                                                                                      ^
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:2880:30: note: in expansion of macro 'API_CALL_FUNCTION'
         const BOOL isAware = API_CALL_FUNCTION(user32, IsProcessDPIAware);
                              ^~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/include/FramelessHelper/Core/private/sysapiloader_p.h:52:19: note: candidate: 'template<class T> T wangwenx190::FramelessHelper::SysApiLoader::get(const QString&, const QString&)'
     Q_NODISCARD T get(const QString &library, const QString &function)
                   ^~~
D:/C++_Study/GUI/framelesshelper/include/FramelessHelper/Core/private/sysapiloader_p.h:52:19: note:   template argument deduction/substitution failed:
D:/C++_Study/GUI/framelesshelper/include/FramelessHelper/Core/private/sysapiloader_p.h:68:102: error: template argument 1 is invalid
   ((FRAMELESSHELPER_PREPEND_NAMESPACE(SysApiLoader)::instance()->get<decltype(&func)>(k##lib, k##func))(__VA_ARGS__))
                                                                                                      ^
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:2880:30: note: in expansion of macro 'API_CALL_FUNCTION'
         const BOOL isAware = API_CALL_FUNCTION(user32, IsProcessDPIAware);
                              ^~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp: In function 'bool wangwenx190::FramelessHelper::isNonClientMessage(UINT)':
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:937:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
ninja: build stopped: subcommand failed.
zhiyiYo commented 1 year ago

此为已知问题,因为Windows11上我默认会开启云母(mica)特效,如果你把整个窗口弄透明,不知为何就会看见原本的标题栏按钮。解决方案也很简单,就是关闭云母特效,换成亚克力特效或者我自己模拟的模糊特效。

模拟的模糊特效是在另外一个仓库里面吗?例子和 README 里面好像没给出使用方式

wangwenx190 commented 1 year ago

此为已知问题,因为Windows11上我默认会开启云母(mica)特效,如果你把整个窗口弄透明,不知为何就会看见原本的标题栏按钮。解决方案也很简单,就是关闭云母特效,换成亚克力特效或者我自己模拟的模糊特效。

模拟的模糊特效是在另外一个仓库里面吗?例子和 README 里面好像没给出使用方式

https://github.com/wangwenx190/framelesshelper/blob/d48b84ea5375281006b1be46de4bae8be0b8c4ef/include/FramelessHelper/Core/framelesshelpercore_global.h#L326

用FramelessConfig这个类开启上面这个选项就可以了

wangwenx190 commented 1 year ago

报错内容如下:

D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:361:26: error: 'WM_GESTURE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_GESTURE)
                          ^~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:361:26: note: suggested alternative: 'GL_TEXTURE'
     DEFINE_WIN32_MESSAGE(WM_GESTURE)
                          ^~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:362:26: error: 'WM_GESTURENOTIFY' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_GESTURENOTIFY)
                          ^~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:362:26: note: suggested alternative: 'WM_GESTURENOTIFIED'
     DEFINE_WIN32_MESSAGE(WM_GESTURENOTIFY)
                          ^~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:420:26: error: 'WM_POINTERDEVICECHANGE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERDEVICECHANGE)
                          ^~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:420:26: note: suggested alternative: 'WM_POINTERDEVICEADDED'
     DEFINE_WIN32_MESSAGE(WM_POINTERDEVICECHANGE)
                          ^~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:421:26: error: 'WM_POINTERDEVICEINRANGE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERDEVICEINRANGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:421:26: note: suggested alternative: 'WM_POINTERDEVICEADDED'
     DEFINE_WIN32_MESSAGE(WM_POINTERDEVICEINRANGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:422:26: error: 'WM_POINTERDEVICEOUTOFRANGE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERDEVICEOUTOFRANGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:422:26: note: suggested alternative: 'WM_POINTERDEVICEADDED'
     DEFINE_WIN32_MESSAGE(WM_POINTERDEVICEOUTOFRANGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:423:26: error: 'WM_TOUCH' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_TOUCH)
                          ^~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:423:26: note: suggested alternative: 'WM_POWER'
     DEFINE_WIN32_MESSAGE(WM_TOUCH)
                          ^~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:424:26: error: 'WM_NCPOINTERUPDATE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_NCPOINTERUPDATE)
                          ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:424:26: note: suggested alternative: 'E_NOINTERFACE'
     DEFINE_WIN32_MESSAGE(WM_NCPOINTERUPDATE)
                          ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:425:26: error: 'WM_NCPOINTERDOWN' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_NCPOINTERDOWN)
                          ^~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:425:26: note: suggested alternative: 'WM_NCXBUTTONDOWN'
     DEFINE_WIN32_MESSAGE(WM_NCPOINTERDOWN)
                          ^~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:426:26: error: 'WM_NCPOINTERUP' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_NCPOINTERUP)
                          ^~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:426:26: note: suggested alternative: 'WM_NCPAINT'
     DEFINE_WIN32_MESSAGE(WM_NCPOINTERUP)
                          ^~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:427:26: error: 'WM_POINTERUPDATE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERUPDATE)
                          ^~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:427:26: note: suggested alternative: 'POLEUPDATE'
     DEFINE_WIN32_MESSAGE(WM_POINTERUPDATE)
                          ^~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:428:26: error: 'WM_POINTERDOWN' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERDOWN)
                          ^~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:428:26: note: suggested alternative: 'WM_PAINTICON'
     DEFINE_WIN32_MESSAGE(WM_POINTERDOWN)
                          ^~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:429:26: error: 'WM_POINTERUP' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERUP)
                          ^~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:429:26: note: suggested alternative: 'E_POINTER'
     DEFINE_WIN32_MESSAGE(WM_POINTERUP)
                          ^~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:430:26: error: 'WM_POINTERENTER' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERENTER)
                          ^~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:430:26: note: suggested alternative: 'WM_PRINTCLIENT'
     DEFINE_WIN32_MESSAGE(WM_POINTERENTER)
                          ^~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:431:26: error: 'WM_POINTERLEAVE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERLEAVE)
                          ^~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:431:26: note: suggested alternative: 'WM_MOUSELEAVE'
     DEFINE_WIN32_MESSAGE(WM_POINTERLEAVE)
                          ^~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:432:26: error: 'WM_POINTERACTIVATE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERACTIVATE)
                          ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:432:26: note: suggested alternative: 'WM_MOUSEACTIVATE'
     DEFINE_WIN32_MESSAGE(WM_POINTERACTIVATE)
                          ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:433:26: error: 'WM_POINTERCAPTURECHANGED' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERCAPTURECHANGED)
                          ^~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:433:26: note: suggested alternative: 'WM_CAPTURECHANGED'
     DEFINE_WIN32_MESSAGE(WM_POINTERCAPTURECHANGED)
                          ^~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:434:26: error: 'WM_TOUCHHITTESTING' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_TOUCHHITTESTING)
                          ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:434:26: note: suggested alternative: 'WM_NCHITTEST'
     DEFINE_WIN32_MESSAGE(WM_TOUCHHITTESTING)
                          ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:435:26: error: 'WM_POINTERWHEEL' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERWHEEL)
                          ^~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:435:26: note: suggested alternative: 'WM_MOUSEHWHEEL'
     DEFINE_WIN32_MESSAGE(WM_POINTERWHEEL)
                          ^~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:436:26: error: 'WM_POINTERHWHEEL' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERHWHEEL)
                          ^~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:436:26: note: suggested alternative: 'WM_MOUSEHWHEEL'
     DEFINE_WIN32_MESSAGE(WM_POINTERHWHEEL)
                          ^~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:437:26: error: 'WM_POINTERROUTEDTO' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERROUTEDTO)
                          ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:437:26: note: suggested alternative: 'WM_POINTERDEVICEADDED'
     DEFINE_WIN32_MESSAGE(WM_POINTERROUTEDTO)
                          ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:438:26: error: 'WM_POINTERROUTEDAWAY' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERROUTEDAWAY)
                          ^~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:438:26: note: suggested alternative: 'LPINTERFACEDATA'
     DEFINE_WIN32_MESSAGE(WM_POINTERROUTEDAWAY)
                          ^~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:439:26: error: 'WM_POINTERROUTEDRELEASED' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_POINTERROUTEDRELEASED)
                          ^~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:439:26: note: suggested alternative: 'WM_POINTERDEVICEDELETED'
     DEFINE_WIN32_MESSAGE(WM_POINTERROUTEDRELEASED)
                          ^~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:457:26: error: 'WM_DPICHANGED_BEFOREPARENT' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_DPICHANGED_BEFOREPARENT)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:457:26: note: suggested alternative: 'WM_DPICHANGED'
     DEFINE_WIN32_MESSAGE(WM_DPICHANGED_BEFOREPARENT)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:458:26: error: 'WM_DPICHANGED_AFTERPARENT' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_DPICHANGED_AFTERPARENT)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:458:26: note: suggested alternative: 'WM_DPICHANGED'
     DEFINE_WIN32_MESSAGE(WM_DPICHANGED_AFTERPARENT)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:485:26: error: 'WM_DWMNCRENDERINGCHANGED' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_DWMNCRENDERINGCHANGED)
                          ^~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:485:26: note: suggested alternative: 'WCA_NCRENDERING_EXILED'
     DEFINE_WIN32_MESSAGE(WM_DWMNCRENDERINGCHANGED)
                          ^~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:487:26: error: 'WM_DWMWINDOWMAXIMIZEDCHANGE' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_DWMWINDOWMAXIMIZEDCHANGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:487:26: note: suggested alternative: 'WM_DWMTHUMBNAILSIZECHANGED'
     DEFINE_WIN32_MESSAGE(WM_DWMWINDOWMAXIMIZEDCHANGE)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:488:26: error: 'WM_DWMSENDICONICTHUMBNAIL' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_DWMSENDICONICTHUMBNAIL)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:489:26: error: 'WM_DWMSENDICONICLIVEPREVIEWBITMAP' was not declared in this scope        
     DEFINE_WIN32_MESSAGE(WM_DWMSENDICONICLIVEPREVIEWBITMAP)
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:490:26: error: 'WM_GETTITLEBARINFOEX' was not declared in this scope
     DEFINE_WIN32_MESSAGE(WM_GETTITLEBARINFOEX)
                          ^~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:490:26: note: suggested alternative: 'LPTITLEBARINFO'
     DEFINE_WIN32_MESSAGE(WM_GETTITLEBARINFOEX)
                          ^~~~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:246:53: note: in definition of macro 'DEFINE_WIN32_MESSAGE'
 #define DEFINE_WIN32_MESSAGE(Message) Win32Message{ Message, #Message },
                                                     ^~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp: In function 'bool wangwenx190::FramelessHelper::isNonClientMessage(UINT)':
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:931:29: error: 'WM_NCPOINTERUPDATE' was not declared in this scope
             || ((message >= WM_NCPOINTERUPDATE) && (message <= WM_NCPOINTERUP))
                             ^~~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:931:29: note: suggested alternative: 'E_NOINTERFACE'
             || ((message >= WM_NCPOINTERUPDATE) && (message <= WM_NCPOINTERUP))
                             ^~~~~~~~~~~~~~~~~~
                             E_NOINTERFACE
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:931:64: error: 'WM_NCPOINTERUP' was not declared in this scope
             || ((message >= WM_NCPOINTERUPDATE) && (message <= WM_NCPOINTERUP))
                                                                ^~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:931:64: note: suggested alternative: 'WM_NCPAINT'
             || ((message >= WM_NCPOINTERUPDATE) && (message <= WM_NCPOINTERUP))
                                                                ^~~~~~~~~~~~~~
                                                                WM_NCPAINT
In file included from D:/C++_Study/GUI/framelesshelper/src/core/sysapiloader_p.h:1,
                 from D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:32:
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp: In function 'wangwenx190::FramelessHelper::Global::DpiAwareness wangwenx190::FramelessHelper::Utils::getDpiAwarenessForCurrentProcess(bool*)':
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:2880:56: error: 'IsProcessDPIAware' was not declared in this scope
         const BOOL isAware = API_CALL_FUNCTION(user32, IsProcessDPIAware);
                                                        ^~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/include/FramelessHelper/Core/private/sysapiloader_p.h:68:80: note: in definition of macro 'API_CALL_FUNCTION'   
   ((FRAMELESSHELPER_PREPEND_NAMESPACE(SysApiLoader)::instance()->get<decltype(&func)>(k##lib, k##func))(__VA_ARGS__))
                                                                                ^~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:2880:56: note: suggested alternative: 'kIsProcessDPIAware'
         const BOOL isAware = API_CALL_FUNCTION(user32, IsProcessDPIAware);
                                                        ^~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/include/FramelessHelper/Core/private/sysapiloader_p.h:68:80: note: in definition of macro 'API_CALL_FUNCTION'   
   ((FRAMELESSHELPER_PREPEND_NAMESPACE(SysApiLoader)::instance()->get<decltype(&func)>(k##lib, k##func))(__VA_ARGS__))
                                                                                ^~~~
D:/C++_Study/GUI/framelesshelper/include/FramelessHelper/Core/private/sysapiloader_p.h:68:102: error: no matching function for call to 'wangwenx190::FramelessHelper::SysApiLoader::get<<expression error> >(const QLatin1String&, const QLatin1String&)'
   ((FRAMELESSHELPER_PREPEND_NAMESPACE(SysApiLoader)::instance()->get<decltype(&func)>(k##lib, k##func))(__VA_ARGS__))
                                                                                                      ^
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:2880:30: note: in expansion of macro 'API_CALL_FUNCTION'
         const BOOL isAware = API_CALL_FUNCTION(user32, IsProcessDPIAware);
                              ^~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/include/FramelessHelper/Core/private/sysapiloader_p.h:52:19: note: candidate: 'template<class T> T wangwenx190::FramelessHelper::SysApiLoader::get(const QString&, const QString&)'
     Q_NODISCARD T get(const QString &library, const QString &function)
                   ^~~
D:/C++_Study/GUI/framelesshelper/include/FramelessHelper/Core/private/sysapiloader_p.h:52:19: note:   template argument deduction/substitution failed:
D:/C++_Study/GUI/framelesshelper/include/FramelessHelper/Core/private/sysapiloader_p.h:68:102: error: template argument 1 is invalid
   ((FRAMELESSHELPER_PREPEND_NAMESPACE(SysApiLoader)::instance()->get<decltype(&func)>(k##lib, k##func))(__VA_ARGS__))
                                                                                                      ^
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:2880:30: note: in expansion of macro 'API_CALL_FUNCTION'
         const BOOL isAware = API_CALL_FUNCTION(user32, IsProcessDPIAware);
                              ^~~~~~~~~~~~~~~~~
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp: In function 'bool wangwenx190::FramelessHelper::isNonClientMessage(UINT)':
D:/C++_Study/GUI/framelesshelper/src/core/utils_win.cpp:937:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
ninja: build stopped: subcommand failed.

你Windows SDK太老了。你可以把所有找不到的宏都注释掉,那个就是调试用的,注释了没关系

zhiyiYo commented 1 year ago

好的,我试试看,谢谢作者的解答

zhiyiYo commented 1 year ago

如果使用 setWindowFlags(windowFlags() & ~Qt::WindowMinMaxButtonsHint & ~Qt::WindowCloseButtonHint); 可以隐藏最大化和最小化按钮,但是关闭按钮仍然显示为禁用初态: 屏幕截图 2023-09-25 104939

wangwenx190 commented 1 year ago

如果使用 setWindowFlags(windowFlags() & ~Qt::WindowMinMaxButtonsHint & ~Qt::WindowCloseButtonHint); 可以隐藏最大化和最小化按钮,但是关闭按钮仍然显示为禁用初态: 屏幕截图 2023-09-25 104939

如果你用的是自定义的标题栏,那么你自己把不需要的按钮隐藏掉就行,没必要修改window flags,而且你看到的那个灰掉的关闭按钮是原本的原生标题栏按钮,你是不是还是用的云母特效?切换到其他模糊效果就不会看到它了

wangwenx190 commented 1 year ago

如果你用的是我提供的标题栏,也是可以拿到那三个按钮的,直接hide掉就行

zhiyiYo commented 1 year ago

目前用的还是系统的云母效果,感觉自己模糊的云母没有那么通透,颜色有点趋近灰色。系统的标题栏无法交互,如果把自定义的标题栏隐藏了就不能放大缩小和关闭了

wangwenx190 commented 1 year ago

如果你倾向于继续使用云母效果,那么唯一的workaround就是想办法用不透明的元素去遮挡原本标题栏按钮的区域,我这边也没有什么好办法去隐藏它们。其实我能隐藏,但会破坏云母效果。目前我找不到两者兼顾的方法。

zhiyiYo commented 12 months ago

好像只有 23H2 有此问题,22H2 不会出现系统标题栏

wangwenx190 commented 12 months ago

跟23H2应该没什么关系。这个问题我很早就发现了。开启云母特效以后,窗口不能全透明,否则会看到原本的标题栏

wangwenx190 commented 12 months ago

核心问题:Win32窗口开启云母特效要求将非客户区扩展到整个窗口,否则窗口就是一个纯黑的背景,但如果扩展了非客户区,就会导致原本非客户区的东西(主要就是标题栏)能被看到。我暂时找不到解决办法。

zhiyiYo commented 12 months ago

要解决这个问题是不是只能用无边框标志位而非设置customMargins了

wangwenx190 commented 12 months ago

要解决这个问题是不是只能用无边框标志位而非设置customMargins了

我没试过设置Qt::FramelessWindowHint能否解决这个问题,你可以试试。如果可行的话,我看看怎么整合到FramelessHelper里