SimpleWindow
载入中...
搜索中...
未找到
ButtonBase.h
1#pragma once
2
3#include "Control.h"
4
5namespace sw
6{
10 class ButtonBase : public Control
11 {
12 private:
16 bool _autoSize = false;
17
18 public:
23
28
33
34 public:
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}
窗口类名为BUTTON的控件类型的基类
Definition ButtonBase.h:11
virtual ~ButtonBase()=0
析构函数,这里用纯虚函数使该类成为抽象类
virtual void OnClicked()
被单击时调用该函数
void InitButtonBase(LPCWSTR lpWindowName, DWORD dwStyle, DWORD dwExStyle)
初始化控件
const Property< bool > AutoSize
是否自动调整大小以适应内容
Definition ButtonBase.h:22
const Property< Thickness > TextMargin
文本边距
Definition ButtonBase.h:32
virtual void OnDoubleClicked()
被双击时调用该函数
virtual Size MeasureOverride(const Size &availableSize) override
测量元素所需尺寸,无需考虑边框和边距
virtual void OnCommand(int code) override
当父窗口接收到控件的WM_COMMAND时调用该函数
ButtonBase()
初始化ButtonBase
const Property< bool > MultiLine
文本过长时是否自动换行
Definition ButtonBase.h:27
控件
Definition Control.h:12
属性
Definition Property.h:1743
尺寸
Definition Size.h:15