From 5a0e5a9261c251dba54afb8cc0b6b32ae9d95510 Mon Sep 17 00:00:00 2001 From: Zhao Yuhang <2546789017@qq.com> Date: 周二, 12 12月 2023 19:50:34 +0800 Subject: [PATCH] add theme win32 message --- src/core/contexts/win32windowcontext_p.h | 20 ++++++++++++++++++-- 1 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/core/contexts/win32windowcontext_p.h b/src/core/contexts/win32windowcontext_p.h index 8906a51..ee6769e 100644 --- a/src/core/contexts/win32windowcontext_p.h +++ b/src/core/contexts/win32windowcontext_p.h @@ -6,6 +6,8 @@ namespace QWK { + class Win10BorderHandler; + class QWK_CORE_EXPORT Win32WindowContext : public AbstractWindowContext { Q_OBJECT public: @@ -21,11 +23,20 @@ TitleBar, }; + QString key() const override; + void virtual_hook(int id, void *data) override; + + Q_INVOKABLE bool needWin10BorderHandler() const; + Q_INVOKABLE void setWin10BorderHandler(Win10BorderHandler *handler); + protected: bool setupHost() override; public: bool windowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT *result); + + bool systemMenuHandler(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, + LRESULT *result); // In order to perfectly apply Windows 11 Snap Layout into the Qt window, we need to // intercept and simulate most of the mouse events, so that the processing logic @@ -37,8 +48,11 @@ bool customWindowHandler(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT *result); - static bool nonClientCalcSizeHandler(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, - LRESULT *result); + bool nonClientCalcSizeHandler(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, + LRESULT *result); + + bool themeStuffHandler(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, + LRESULT *resul); protected: WId windowId = 0; @@ -51,6 +65,8 @@ bool mouseLeaveBlocked = false; bool centered = false; + + std::unique_ptr<Win10BorderHandler> win10BorderHandler; }; } -- Gitblit v1.9.1