From d2c54ed3c5ffe19017403fe8f766bae6b63f6487 Mon Sep 17 00:00:00 2001 From: p5sa938fq <1393817257@qq.com> Date: Mon, 22 Jan 2024 20:11:40 +0800 Subject: [PATCH] Update Window.h --- src/PowerEditor/src/WinControls/Window.h | 33 +++++++++++++----------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/PowerEditor/src/WinControls/Window.h b/src/PowerEditor/src/WinControls/Window.h index 57a45c7..aa8f6e3 100644 --- a/src/PowerEditor/src/WinControls/Window.h +++ b/src/PowerEditor/src/WinControls/Window.h @@ -15,48 +15,51 @@ // along with this program. If not, see . +//代码整体实现了一个创建和销毁窗口的功能 +//在VerticalFileSwitcherListView.h、URLCtrl.h、TreeView.h、ToolTip.h等文件里都引用了Window.h +//基本上只要是会弹出窗口的功能都需要引用此头文件 #pragma once #include -class Window +class Window//定义了一个窗口类,包括了窗口的初始化、销毁、显示、重绘等操作 { public: //! \name Constructors & Destructor //@{ - Window() = default; - Window(const Window&) = delete; - virtual ~Window() = default; + Window() = default;// 默认构造函数 + Window(const Window&) = delete;// 禁用拷贝构造函数 + virtual ~Window() = default;// 默认析构函数 //@} - + // 初始化窗口 virtual void init(HINSTANCE hInst, HWND parent) { _hInst = hInst; _hParent = parent; } - virtual void destroy() = 0; + virtual void destroy() = 0;// 销毁窗口 - virtual void display(bool toShow = true) const + virtual void display(bool toShow = true) const// 显示或隐藏窗口 { ::ShowWindow(_hSelf, toShow ? SW_SHOW : SW_HIDE); } - + // 调整窗口大小并重绘窗口内容 virtual void reSizeTo(RECT & rc) // should NEVER be const !!! { ::MoveWindow(_hSelf, rc.left, rc.top, rc.right, rc.bottom, TRUE); redraw(); } - + // 调整窗口大小(传入宽度和高度)并重绘窗口内容 virtual void reSizeToWH(RECT& rc) // should NEVER be const !!! { ::MoveWindow(_hSelf, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, TRUE); redraw(); } - + // 重绘窗口内容 virtual void redraw(bool forceUpdate = false) const { ::InvalidateRect(_hSelf, nullptr, TRUE); @@ -64,24 +67,24 @@ public: ::UpdateWindow(_hSelf); } - + // 获取窗口客户区矩形 virtual void getClientRect(RECT & rc) const { ::GetClientRect(_hSelf, &rc); } - + // 获取窗口矩形 virtual void getWindowRect(RECT & rc) const { ::GetWindowRect(_hSelf, &rc); } - + // 获取窗口宽度 virtual int getWidth() const { RECT rc; ::GetClientRect(_hSelf, &rc); return (rc.right - rc.left); } - + // 获取窗口高度 virtual int getHeight() const { RECT rc; @@ -90,7 +93,7 @@ public: return (rc.bottom - rc.top); return 0; } - + // 判断窗口是否可见 virtual bool isVisible() const { return (::IsWindowVisible(_hSelf)?true:false);