16 enum class WindowState {
25 enum class WindowStartupLocation {
45 bool _isFirstShow =
true;
50 WindowStartupLocation _startupLocation = WindowStartupLocation::Manual;
60 HWND _hPrevFocused = NULL;
65 std::unique_ptr<LayoutHost> _defaultLayout;
70 bool _isModal =
false;
75 HWND _hModalOwner = NULL;
80 bool _isBorderless =
false;
85 int _dialogResult = 0;
90 bool _isDestroying =
false;
95 int _disableLayoutCount = 0;
350 template <
typename TLayout>
352 ->
typename std::enable_if<std::is_base_of<LayoutHost, TLayout>::value>::type
354 auto layout = std::make_unique<TLayout>();
355 layout->Associate(
this);
356 _defaultLayout = std::move(layout);
363 template <std::
nullptr_t>
366 _defaultLayout.reset(
nullptr);
374 bool _IsLayoutDisabled() const noexcept;
380 void _CenterWindow(const sw::
Rect &rect);
386 void _ClampMinMaxSize(PMINMAXINFO pInfo);
393 static
Window *_GetWindowPtr(HWND hwnd);
400 static
void _SetWindowPtr(HWND hwnd,
Window &wnd);
406 static HICON _GetWindowDefaultIcon();
对话框接口
Definition IDialog.h:11
表示可以设置布局方式的元素类型,如窗口、面板等
Definition Layer.h:13
用于托管元素的布局方式的对象类型,是所有布局方式类型的基类
Definition LayoutHost.h:11
属性
Definition Property.h:1743
只读属性
Definition Property.h:1828
void InvalidateMeasure()
使元素的布局状态失效,并立即触发布局更新
const ReadOnlyProperty< sw::Rect > RestoreRect
窗口在最小化或最大化之前的位置和尺寸
Definition Window.h:184
virtual bool OnDestroy() override
接收到WM_DESTROY时调用该函数
bool DisableLayout()
禁用窗口布局
const Property< bool > Topmost
窗口是否置顶
Definition Window.h:137
const Property< bool > Borderless
窗口无边框
Definition Window.h:173
void SetLayout()
取消通过SetLayout设置的布局方式
Definition Window.h:364
virtual void OnActived()
窗口成为前台窗口时调用该函数
const Property< WindowState > State
窗口状态
Definition Window.h:117
auto SetLayout() -> typename std::enable_if< std::is_base_of< LayoutHost, TLayout >::value >::type
设置窗口的默认布局方式
Definition Window.h:351
const Property< sw::Menu * > Menu
窗口顶部的菜单栏
Definition Window.h:147
static const ReadOnlyProperty< int > WindowCount
当前线程已创建的窗口数
Definition Window.h:107
virtual void OnFirstShow()
窗口第一次显示时调用该函数
const ReadOnlyProperty< bool > IsLayoutDisabled
窗口布局是否被禁用
Definition Window.h:189
void DrawMenuBar()
重回窗口的菜单栏
virtual bool OnCreate() override
接收到WM_CREATE时调用该函数
virtual int ShowDialog(Window &owner)
将窗口显示为模式对话框
virtual bool OnDpiChanged(int dpiX, int dpiY, RECT &newRect)
接收到WM_DPICHANGED时调用该函数
const Property< WindowStartupLocation > StartupLocation
窗口初次启动的位置
Definition Window.h:112
bool SizeToContent()
调整窗口尺寸以适应其内容大小
virtual bool OnClose() override
接收到WM_CLOSE时调用该函数
virtual Window * ToWindow() override
尝试将对象转换成Window
const Property< bool > SizeBox
窗口是否可调整大小
Definition Window.h:122
static const ReadOnlyProperty< Window * > ActiveWindow
当前线程的活动窗口
Definition Window.h:101
virtual int ShowDialog(Window *owner=nullptr) override
将窗口显示为模式对话框
const Property< bool > MaximizeBox
最大化按钮是否可用
Definition Window.h:127
const ReadOnlyProperty< bool > IsModal
窗口是否显示为模态窗口,当调用ShowDialog时该属性值为true,否则为false
Definition Window.h:152
const Property< double > Opacity
窗口的透明度,范围为0.0~1.0
Definition Window.h:168
virtual void OnMenuCommand(int id) override
当OnCommand接收到菜单命令时调用该函数
void SetIcon(HICON hIcon)
设置图标
virtual void OnMinMaxSizeChanged() override
当MinWidth、MinHeight、MaxWidth或MaxHeight属性更改时调用此函数
virtual void OnInactived()
窗口成为后台窗口时调用该函数
const Property< bool > MinimizeBox
最小化按钮是否可用
Definition Window.h:132
bool EnableLayout(bool reset=false)
恢复窗口布局,与DisableLayout配对使用
const Property< bool > IsLayered
窗口是否为分层窗口,即WS_EX_LAYERED样式是否被设置
Definition Window.h:162
virtual LayoutHost * GetDefaultLayout() override
获取默认布局对象
const Property< bool > ToolWindow
是否显示为ToolWindow (窄边框)
Definition Window.h:142
virtual void Show() override
显示窗口
const Property< int > DialogResult
窗口的对话框结果,ShowDialog返回该值
Definition Window.h:179
virtual void Close() override
关闭窗口
virtual LRESULT WndProc(ProcMsg &refMsg) override
对WndProc的封装
virtual bool OnEraseBackground(HDC hdc, LRESULT &result) override
接收到WM_ERASEBKGND时调用该函数
virtual bool OnPaint() override
接收到WM_PAINT时调用该函数
const Property< Window * > Owner
拥有者窗口
Definition Window.h:157
对Windows窗口消息的封装
Definition ProcMsg.h:10
表示一个矩形区域
Definition Rect.h:17