Magpie/tools/WindowCase/KirikiriWindow.h
Xu 74d26e4a0d
正在缩放窗口时禁止自动缩放它的弹窗 (#1276)
* feat(tool): Kirikiri 模拟添加弹窗

* fix: 禁止同一进程内类名相同的窗口打断缩放

* fix: 正在缩放窗口时禁止自动缩放它的弹窗

* fix: 增加两个窗口位于同一进程的条件

* chore: 添加注释
2025-08-26 20:02:26 +08:00

31 lines
778 B
C++

#pragma once
#include "WindowBase.h"
class KirikiriWindow : public WindowBaseT<KirikiriWindow> {
using base_type = WindowBaseT<KirikiriWindow>;
friend base_type;
public:
bool Create() noexcept;
protected:
LRESULT _MessageHandler(UINT msg, WPARAM wParam, LPARAM lParam) noexcept;
private:
static LRESULT CALLBACK _OwnerWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
LRESULT _PopupMessageHandler(UINT msg, WPARAM wParam, LPARAM lParam) noexcept;
void _UpdateButtonPos() noexcept;
HWND _hwndOwner = NULL;
HWND _hwndBtn1 = NULL;
HWND _hwndBtn2 = NULL;
std::unique_ptr<KirikiriWindow> _popup1;
std::unique_ptr<KirikiriWindow> _popup2;
// 下面三个成员用于弹窗
HWND _hwndMain = NULL;
bool _isPopup = false;
bool _isOwnedPopup = false;
};