SimpleWindow
载入中...
搜索中...
未找到
sw::Window类 参考

窗口 更多...

#include <Window.h>

类 sw::Window 继承关系图:
sw::Layer< UIElement > sw::IDialog

Public 成员函数

 Window ()
 初始化窗口
 
 ~Window ()
 析构函数
 
virtual void Close () override
 关闭窗口
 
virtual void Show () override
 显示窗口
 
virtual int ShowDialog (Window *owner=nullptr) override
 将窗口显示为模式对话框
 
virtual int ShowDialog (Window &owner)
 将窗口显示为模式对话框
 
bool DisableLayout ()
 禁用窗口布局
 
bool EnableLayout (bool reset=false)
 恢复窗口布局,与DisableLayout配对使用
 
void SetIcon (HICON hIcon)
 设置图标
 
void DrawMenuBar ()
 重回窗口的菜单栏
 
bool SizeToContent ()
 调整窗口尺寸以适应其内容大小
 
template<typename TLayout >
auto SetLayout () -> typename std::enable_if< std::is_base_of< LayoutHost, TLayout >::value >::type
 设置窗口的默认布局方式
 
template<std::nullptr_t >
void SetLayout ()
 取消通过SetLayout设置的布局方式
 
- Public 成员函数 继承自 sw::IDialog
virtual ~IDialog ()=default
 默认虚析构函数
 

Public 属性

const Property< WindowStartupLocationStartupLocation
 窗口初次启动的位置
 
const Property< WindowStateState
 窗口状态
 
const Property< boolSizeBox
 窗口是否可调整大小
 
const Property< boolMaximizeBox
 最大化按钮是否可用
 
const Property< boolMinimizeBox
 最小化按钮是否可用
 
const Property< boolTopmost
 窗口是否置顶
 
const Property< boolToolWindow
 是否显示为ToolWindow (窄边框)
 
const Property< sw::Menu * > Menu
 窗口顶部的菜单栏
 
const ReadOnlyProperty< boolIsModal
 窗口是否显示为模态窗口,当调用ShowDialog时该属性值为true,否则为false
 
const Property< Window * > Owner
 拥有者窗口
 
const Property< boolIsLayered
 窗口是否为分层窗口,即WS_EX_LAYERED样式是否被设置
 
const Property< doubleOpacity
 窗口的透明度,范围为0.0~1.0
 
const Property< boolBorderless
 窗口无边框
 
const Property< intDialogResult
 窗口的对话框结果,ShowDialog返回该值
 
const ReadOnlyProperty< sw::RectRestoreRect
 窗口在最小化或最大化之前的位置和尺寸
 
const ReadOnlyProperty< boolIsLayoutDisabled
 窗口布局是否被禁用
 

静态 Public 属性

static const ReadOnlyProperty< Window * > ActiveWindow
 当前线程的活动窗口
 
static const ReadOnlyProperty< intWindowCount
 当前线程已创建的窗口数
 

Protected 成员函数

virtual LRESULT WndProc (ProcMsg &refMsg) override
 对WndProc的封装
 
virtual LayoutHostGetDefaultLayout () override
 获取默认布局对象
 
virtual bool OnCreate () override
 接收到WM_CREATE时调用该函数
 
virtual bool OnClose () override
 接收到WM_CLOSE时调用该函数
 
virtual bool OnDestroy () override
 接收到WM_DESTROY时调用该函数
 
virtual bool OnEraseBackground (HDC hdc, LRESULT &result) override
 接收到WM_ERASEBKGND时调用该函数
 
virtual bool OnPaint () override
 接收到WM_PAINT时调用该函数
 
virtual void OnMenuCommand (int id) override
 当OnCommand接收到菜单命令时调用该函数
 
virtual void OnMinMaxSizeChanged () override
 当MinWidth、MinHeight、MaxWidth或MaxHeight属性更改时调用此函数
 
virtual void OnFirstShow ()
 窗口第一次显示时调用该函数
 
virtual void OnActived ()
 窗口成为前台窗口时调用该函数
 
virtual void OnInactived ()
 窗口成为后台窗口时调用该函数
 
virtual bool OnDpiChanged (int dpiX, int dpiY, RECT &newRect)
 接收到WM_DPICHANGED时调用该函数
 

详细描述

窗口

成员函数说明

◆ Close()

virtual void sw::Window::Close ( )
overridevirtual

关闭窗口

实现了 sw::IDialog.

◆ DisableLayout()

bool sw::Window::DisableLayout ( )

禁用窗口布局

注解
需与EnableLayout配对使用,内部维护了一个计数器以支持嵌套调用
禁用布局操作只对顶层窗口有效,且只能在窗口所在的线程调用该函数
返回
操作是否成功

◆ EnableLayout()

bool sw::Window::EnableLayout ( bool  reset = false)

恢复窗口布局,与DisableLayout配对使用

参数
reset若该参数为true则直接将布局禁用计数器重置为0
注解
禁用布局操作只对顶层窗口有效,且只能在窗口所在的线程调用该函数
返回
操作是否成功

◆ OnClose()

virtual bool sw::Window::OnClose ( )
overrideprotectedvirtual

接收到WM_CLOSE时调用该函数

返回
若已处理该消息则返回true,否则返回false以调用DefaultWndProc

◆ OnCreate()

virtual bool sw::Window::OnCreate ( )
overrideprotectedvirtual

接收到WM_CREATE时调用该函数

返回
若已处理该消息则返回true,否则返回false以调用DefaultWndProc

◆ OnDestroy()

virtual bool sw::Window::OnDestroy ( )
overrideprotectedvirtual

接收到WM_DESTROY时调用该函数

返回
若已处理该消息则返回true,否则返回false以调用DefaultWndProc

◆ OnDpiChanged()

virtual bool sw::Window::OnDpiChanged ( int  dpiX,
int  dpiY,
RECT newRect 
)
protectedvirtual

接收到WM_DPICHANGED时调用该函数

参数
dpiX横向DPI
dpiY纵向DPI
newRect建议的新窗口位置和尺寸
返回
若已处理该消息则返回true,否则返回false以调用DefaultWndProc

◆ OnEraseBackground()

virtual bool sw::Window::OnEraseBackground ( HDC  hdc,
LRESULT result 
)
overrideprotectedvirtual

接收到WM_ERASEBKGND时调用该函数

参数
hdc设备上下文句柄
result若已处理该消息则设为非零值,默认值为0
返回
若返回true则将result作为消息的返回值,否则使用DefaultWndProc的返回值

◆ OnMenuCommand()

virtual void sw::Window::OnMenuCommand ( int  id)
overrideprotectedvirtual

当OnCommand接收到菜单命令时调用该函数

参数
id菜单id

◆ OnPaint()

virtual bool sw::Window::OnPaint ( )
overrideprotectedvirtual

接收到WM_PAINT时调用该函数

返回
若已处理该消息则返回true,否则返回false以调用DefaultWndProc

◆ SetIcon()

void sw::Window::SetIcon ( HICON  hIcon)

设置图标

参数
hIcon图标句柄

◆ Show()

virtual void sw::Window::Show ( )
overridevirtual

显示窗口

实现了 sw::IDialog.

◆ ShowDialog() [1/2]

virtual int sw::Window::ShowDialog ( Window owner)
virtual

将窗口显示为模式对话框

参数
owner窗体的所有者,窗体显示期间该窗体的Enabled属性将被设为false,该参数不能设为自己
返回
DialogResult属性的值,若函数失败则返回-1
注解
该函数会创建一个新的消息循环并在窗口销毁时退出,只能在创建窗口的线程调用

◆ ShowDialog() [2/2]

virtual int sw::Window::ShowDialog ( Window owner = nullptr)
overridevirtual

将窗口显示为模式对话框

参数
owner窗体的所有者,若为nullptr则使用当前活动窗口
返回
DialogResult属性的值,若函数失败则返回-1
注解
该函数会创建一个新的消息循环并在窗口销毁时退出,只能在创建窗口的线程调用

实现了 sw::IDialog.

◆ SizeToContent()

bool sw::Window::SizeToContent ( )

调整窗口尺寸以适应其内容大小

注解
该函数仅对设置了布局方式且AutoSize属性为true的顶级窗口有效
返回
若窗口尺寸已被调整则返回true,否则返回false

类成员变量说明

◆ DialogResult

const Property<int> sw::Window::DialogResult

窗口的对话框结果,ShowDialog返回该值

注解
该属性仅在窗口作为模态对话框显示时有效,默认值为0,该属性一旦被设置则会自动关闭窗口

◆ Opacity

const Property<double> sw::Window::Opacity

窗口的透明度,范围为0.0~1.0

注解
只有将IsLayered设为true该属性才生效,初始值为0.0但需手动设置新值后才会生效

◆ WindowCount

const ReadOnlyProperty<int> sw::Window::WindowCount
static

当前线程已创建的窗口数

注解
该属性是线程局部的,每个线程有各自独立的值

该类的文档由以下文件生成: