SimpleWindow
载入中...
搜索中...
未找到
Label.h
1#pragma once
2
3#include "StaticControl.h"
4
5namespace sw
6{
10 enum class TextTrimming {
11 None, // 不处理
12 EndEllipsis, // 按字符截断并显示“...”
13 WordEllipsis, // 按单词截断并显示“...”
14 };
15
19 class Label : public StaticControl
20 {
21 private:
25 Size _textSize;
26
30 bool _autoSize = true;
31
32 public:
37
42
47
52
57
58 public:
63
64 protected:
70 virtual bool OnSize(const Size &newClientSize) override;
71
75 virtual void OnTextChanged() override;
76
81 virtual void FontChanged(HFONT hfont) override;
82
88 virtual Size MeasureOverride(const Size &availableSize) override;
89
90 private:
94 void _UpdateTextSize();
95
99 void _ResizeToTextSize();
100
104 void _UpdateLayoutFlags();
105
109 sw::HorizontalAlignment _GetHorzContentAlignment();
110
114 void _SetHorzContentAlignment(sw::HorizontalAlignment value);
115
119 sw::VerticalAlignment _GetVertContentAlignment();
120
124 void _SetVertContentAlignment(sw::VerticalAlignment value);
125
129 sw::TextTrimming _GetTextTrimming();
130
134 void _SetTextTrimming(sw::TextTrimming value);
135 };
136}
标签
Definition Label.h:20
const Property< bool > AutoSize
是否根据文本自动调整尺寸
Definition Label.h:56
virtual bool OnSize(const Size &newClientSize) override
接收到WM_SIZE时调用该函数
const Property< sw::HorizontalAlignment > HorizontalContentAlignment
文本的水平对齐方式,可设为左对齐、中心对齐、右对齐
Definition Label.h:36
const Property< sw::TextTrimming > TextTrimming
文本过长时末尾的处理方式,当使用截断时水平对齐和自动换行将失效
Definition Label.h:46
const Property< sw::VerticalAlignment > VerticalContentAlignment
文本的垂直对齐方式,仅支持顶部对齐和中心对齐,当使用中心对齐时会使自动换行失效
Definition Label.h:41
Label()
初始化标签
virtual void FontChanged(HFONT hfont) override
字体改变时调用该函数
virtual Size MeasureOverride(const Size &availableSize) override
测量元素所需尺寸,无需考虑边框和边距
virtual void OnTextChanged() override
Text属性更改时调用此函数
const Property< bool > AutoWrap
是否自动换行
Definition Label.h:51
属性
Definition Property.h:1743
静态控件
Definition StaticControl.h:11
尺寸
Definition Size.h:15