SimpleWindow
载入中...
搜索中...
未找到
GroupBox.h
1#pragma once
2
3#include "Panel.h"
4
5namespace sw
6{
10 class GroupBox : public Panel
11 {
12 private:
16 SIZE _textSize;
17
21 std::unique_ptr<LayoutHost> _defaultLayout;
22
23 public:
28
29 protected:
33 virtual LayoutHost *GetDefaultLayout() override;
34
41 virtual void OnDrawBorder(HDC hdc, RECT &rect) override;
42
46 virtual void OnTextChanged() override;
47
52 virtual void FontChanged(HFONT hfont) override;
53
59 virtual void SetBackColor(Color color, bool redraw) override;
60
66 virtual void SetTextColor(Color color, bool redraw) override;
67
68 public:
72 template <typename TLayout>
73 auto SetLayout()
74 -> typename std::enable_if<std::is_base_of<LayoutHost, TLayout>::value>::type
75 {
76 auto layout = std::make_unique<TLayout>();
77 layout->Associate(this);
78 _defaultLayout = std::move(layout);
80 }
81
85 template <std::nullptr_t>
86 void SetLayout()
87 {
88 _defaultLayout.reset(nullptr);
90 }
91
92 private:
96 void _UpdateTextSize();
97 };
98}
组合框
Definition GroupBox.h:11
auto SetLayout() -> typename std::enable_if< std::is_base_of< LayoutHost, TLayout >::value >::type
设置默认布局方式
Definition GroupBox.h:73
virtual void OnTextChanged() override
Text属性更改时调用此函数
void SetLayout()
取消通过SetLayout设置的布局方式
Definition GroupBox.h:86
GroupBox()
初始化组合框
virtual void SetTextColor(Color color, bool redraw) override
设置文本颜色
virtual void SetBackColor(Color color, bool redraw) override
设置背景颜色
virtual void OnDrawBorder(HDC hdc, RECT &rect) override
绘制边框
virtual LayoutHost * GetDefaultLayout() override
获取默认布局对象
virtual void FontChanged(HFONT hfont) override
字体改变时调用该函数
用于托管元素的布局方式的对象类型,是所有布局方式类型的基类
Definition LayoutHost.h:11
面板
Definition Panel.h:22
void InvalidateMeasure()
使元素的布局状态失效,并立即触发布局更新
颜色
Definition Color.h:16