SimpleWindow
载入中...
搜索中...
未找到
ButtonBase.h
1
#pragma once
2
3
#include "Control.h"
4
5
namespace
sw
6
{
10
class
ButtonBase
:
public
Control
11
{
12
private
:
16
bool
_autoSize =
false
;
17
18
public
:
22
const
Property<bool>
AutoSize
;
23
27
const
Property<bool>
MultiLine
;
28
32
const
Property<Thickness>
TextMargin
;
33
34
public
:
38
ButtonBase
();
39
43
virtual
~ButtonBase
() = 0;
44
45
protected
:
49
void
InitButtonBase
(LPCWSTR lpWindowName, DWORD dwStyle, DWORD dwExStyle);
50
54
virtual
void
OnClicked
();
55
59
virtual
void
OnDoubleClicked
();
60
65
virtual
void
OnCommand
(
int
code)
override
;
66
72
virtual
Size
MeasureOverride
(
const
Size
&availableSize)
override
;
73
74
private
:
78
void
_UpdateLayoutFlags();
79
84
bool
_GetIdealSize(SIZE &size);
85
90
bool
_GetTextMargin(RECT &rect);
91
96
bool
_SetTextMargin(RECT &rect);
97
};
98
}
sw::ButtonBase
窗口类名为BUTTON的控件类型的基类
Definition
ButtonBase.h:11
sw::ButtonBase::~ButtonBase
virtual ~ButtonBase()=0
析构函数,这里用纯虚函数使该类成为抽象类
sw::ButtonBase::OnClicked
virtual void OnClicked()
被单击时调用该函数
sw::ButtonBase::InitButtonBase
void InitButtonBase(LPCWSTR lpWindowName, DWORD dwStyle, DWORD dwExStyle)
初始化控件
sw::ButtonBase::AutoSize
const Property< bool > AutoSize
是否自动调整大小以适应内容
Definition
ButtonBase.h:22
sw::ButtonBase::TextMargin
const Property< Thickness > TextMargin
文本边距
Definition
ButtonBase.h:32
sw::ButtonBase::OnDoubleClicked
virtual void OnDoubleClicked()
被双击时调用该函数
sw::ButtonBase::MeasureOverride
virtual Size MeasureOverride(const Size &availableSize) override
测量元素所需尺寸,无需考虑边框和边距
sw::ButtonBase::OnCommand
virtual void OnCommand(int code) override
当父窗口接收到控件的WM_COMMAND时调用该函数
sw::ButtonBase::ButtonBase
ButtonBase()
初始化ButtonBase
sw::ButtonBase::MultiLine
const Property< bool > MultiLine
文本过长时是否自动换行
Definition
ButtonBase.h:27
sw::Control
控件
Definition
Control.h:12
sw::Property
属性
Definition
Property.h:1743
sw::Size
尺寸
Definition
Size.h:15
sw
inc
ButtonBase.h
制作者
1.9.8