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 void OnSetBackColor(Color color, bool redraw) override;
65
71 virtual void OnSetTextColor(Color color, bool redraw) override;
72
73 public:
77 template <typename TLayout>
78 auto SetLayout()
79 -> typename std::enable_if<std::is_base_of<LayoutHost, TLayout>::value>::type
80 {
81 auto layout = std::make_unique<TLayout>();
82 layout->Associate(this);
83 _defaultLayout = std::move(layout);
84 InvalidateMeasure();
85 }
86
90 template <std::nullptr_t>
91 void SetLayout()
92 {
93 _defaultLayout.reset(nullptr);
94 InvalidateMeasure();
95 }
96
97 private:
101 void _UpdateTextSize();
102 };
103}
组合框
Definition GroupBox.h:11
auto SetLayout() -> typename std::enable_if< std::is_base_of< LayoutHost, TLayout >::value >::type
设置默认布局方式
Definition GroupBox.h:78
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:91
GroupBox()
初始化组合框
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