SimpleWindow
载入中...
搜索中...
未找到
GroupBox.h
1#pragma once
2
3#include "Panel.h"
4
5namespace sw
6{
10 class GroupBox : public Panel
11 {
12 private:
16 using TBase = Panel;
17
21 SIZE _textSize;
22
26 std::unique_ptr<LayoutHost> _defaultLayout;
27
28 public:
33
34 protected:
38 virtual LayoutHost *GetDefaultLayout() override;
39
46 virtual void OnDrawBorder(HDC hdc, RECT &rect) override;
47
51 virtual void OnTextChanged() override;
52
57 virtual void FontChanged(HFONT hfont) override;
58
64 virtual bool OnSize(const Size &newClientSize) override;
65
71 virtual void OnSetBackColor(Color color, bool redraw) override;
72
78 virtual void OnSetTextColor(Color color, bool redraw) override;
79
80 public:
84 template <typename TLayout>
85 auto SetLayout()
86 -> typename std::enable_if<std::is_base_of<LayoutHost, TLayout>::value>::type
87 {
88 auto layout = std::make_unique<TLayout>();
89 layout->Associate(this);
90 _defaultLayout = std::move(layout);
91 InvalidateMeasure();
92 }
93
97 template <std::nullptr_t>
98 void SetLayout()
99 {
100 _defaultLayout.reset(nullptr);
101 InvalidateMeasure();
102 }
103
104 private:
108 void _UpdateTextSize();
109 };
110}
组合框
Definition GroupBox.h:11
auto SetLayout() -> typename std::enable_if< std::is_base_of< LayoutHost, TLayout >::value >::type
设置默认布局方式
Definition GroupBox.h:85
virtual void OnSetTextColor(Color color, bool redraw) override
设置文本颜色
virtual void OnSetBackColor(Color color, bool redraw) override
设置背景颜色
virtual void OnTextChanged() override
Text属性更改时调用此函数
void SetLayout()
取消通过SetLayout设置的布局方式
Definition GroupBox.h:98
GroupBox()
初始化组合框
virtual bool OnSize(const Size &newClientSize) override
接收到WM_SIZE时调用该函数
virtual void OnDrawBorder(HDC hdc, RECT &rect) override
绘制边框
virtual LayoutHost * GetDefaultLayout() override
获取默认布局对象
virtual void FontChanged(HFONT hfont) override
字体改变时调用该函数
值转换器接口
Definition IValueConverter.h:14
用于托管元素的布局方式的对象类型,是所有布局方式类型的基类
Definition LayoutHost.h:11
面板
Definition Panel.h:23
Panel()
初始化面板
SimpleWindow框架的顶级命名空间,所有公共类型、控件、枚举和工具函数均定义于此。
Definition Alignment.h:4
颜色
Definition Color.h:16
尺寸
Definition Size.h:15