HiEasyX  Ver 0.3.0
EasyX 全面扩展库
HiEasyX::Static类 参考

静态(文本、图像)控件 更多...

#include <Static.h>

类 HiEasyX::Static 继承关系图:
HiEasyX::ControlBase HiEasyX::Container

struct  Char
 

Public 成员函数

 Static ()
 
 Static (int x, int y, int w, int h, std::wstring wstrText=L"")
 
virtual std::vector< CharConvert (std::wstring wstrText)
 
virtual std::wstring Convert (std::vector< Char > vecText)
 
virtual std::vector< Char > & GetTextVector ()
 
virtual void ClearText ()
 
virtual void AddText (std::wstring wstr, bool isSetTextColor=false, COLORREF cText=0, bool isSetBkColor=false, COLORREF cBk=0)
 添加文本 更多...
 
void SetText (std::wstring wstrText) override
 
void SetText (std::vector< Char > vecText)
 
virtual ImageBlockGetImage ()
 获取缓存的图像 更多...
 
virtual void SetImage (ImageBlock *pImgBlockmg)
 设置显示图像 更多...
 
void Draw_Text (int nTextOffsetX=0, int nTextOffsetY=0) override
 
void Draw (bool draw_child=true) override
 绘制控件 更多...
 
- Public 成员函数 继承自 HiEasyX::ControlBase
 ControlBase ()
 
 ControlBase (std::wstring wstrText)
 
 ControlBase (int x, int y, int w=0, int h=0, std::wstring wstrText=L"")
 
virtual ~ControlBase ()
 
ControlBaseGetParent ()
 
virtual void SetParent (ControlBase *p)
 设置父控件(父控件调用 AddChild) 更多...
 
virtual bool IsAutoSizeForChild () const
 
virtual void EnableAutoSizeForChild (bool enable)
 为子控件自动改变大小以容纳控件(不容纳负坐标部分) 更多...
 
std::list< ControlBase * > & GetChildList ()
 
size_t GetChildCount ()
 获取子控件总数 更多...
 
virtual void AddChild (ControlBase *p, int offset_x=0, int offset_y=0)
 
virtual void RemoveChild (ControlBase *p)
 
virtual bool IsEnabled () const
 
virtual void SetEnable (bool enable)
 
virtual bool IsVisible () const
 
virtual void SetVisible (bool visible)
 
virtual bool GetAutoRedrawState () const
 
virtual void EnableAutoRedraw (bool enable)
 启用自动重绘(接受到基础消息事件时自动标识需要重绘) 更多...
 
virtual CanvasGetCanvas ()
 
virtual COLORREF GetBkColor () const
 
virtual void SetBkColor (COLORREF color)
 
virtual COLORREF GetTextColor () const
 
virtual void SetTextColor (COLORREF color)
 
virtual void EnableBorder (bool bEnableBorder, COLORREF color=BLACK, int thickness=1)
 
virtual void SetAlpha (BYTE alpha, bool bUseCanvasAlpha, bool isAlphaCalculated)
 
virtual std::wstring GetText () const
 
virtual void Redraw ()
 重绘控件 更多...
 
virtual void Render (Canvas *dst, RECT *pRct=nullptr, int *pCount=0)
 渲染控件到外部 更多...
 
virtual void SetMsgProcFunc (MESSAGE_PROC_FUNC func)
 设置消息响应函数 更多...
 
virtual void SetMsgProcFunc (MESSAGE_PROC_FUNC_CLASS static_class_func, void *_this)
 设置消息响应函数为静态类函数 更多...
 
virtual void UpdateMessage (ExMessage msg)
 更新消息 更多...
 
virtual bool IsHovered () const
 判断鼠标是否悬停 更多...
 
virtual bool IsFocused () const
 判断是否拥有焦点 更多...
 
virtual bool IsPressed () const
 判断是否按下 更多...
 
- Public 成员函数 继承自 HiEasyX::Container
 Container ()
 
virtual ~Container ()
 
RECT GetRect () const
 
void SetRect (int x, int y, int w, int h)
 设置位置和宽高 更多...
 
void SetRect (RECT rct)
 设置矩形区域 更多...
 
POINT GetPos () const
 
int GetX () const
 
int GetY () const
 
void SetPos (int x, int y)
 
void SetPos (POINT pt)
 
void Move (int x, int y)
 
void MoveRel (int dx, int dy)
 
int GetWidth () const
 
void SetWidth (int w)
 
int GetHeight () const
 
void SetHeight (int h)
 
void Resize (int w, int h)
 

Protected 成员函数

virtual void Init ()
 
- Protected 成员函数 继承自 HiEasyX::ControlBase
void UpdateRect (RECT rctOld) override
 更新区域消息处理 更多...
 
void MarkNeedRedrawAndRender ()
 标记需要重绘和渲染 更多...
 
void MarkNeedClearRect (RECT rct)
 标记需要清空矩形区域 更多...
 
virtual void DrawChild ()
 绘制子控件 更多...
 
virtual ExMessage & TransformMessage (ExMessage &msg)
 转换消息 更多...
 
virtual void CallUserMsgProcFunc (int msgid, ExMessage msg)
 分发消息到用户函数 更多...
 
virtual void ChildRectChanged (ControlBase *pChild)
 子控件区域变更 更多...
 

Protected 属性

std::vector< Charm_vecText
 
ImageBlockm_pImgBlock = nullptr
 
- Protected 属性 继承自 HiEasyX::ControlBase
bool m_bEnabled = true
 是否可用 更多...
 
bool m_bVisible = true
 是否可见 更多...
 
bool m_bAutoRedrawWhenReceiveMsg = true
 当默认消息处理函数接受到消息时,是否自动标识重绘和渲染 更多...
 
bool m_bRedraw = true
 标识需要重绘 更多...
 
bool m_bRender = true
 标识需要渲染 更多...
 
bool m_bClear = false
 标识需要清空某区域 更多...
 
RECT m_rctClear = { 0 }
 记录需要清空的区域 更多...
 
bool m_bAlwaysRedrawAndRender = false
 总是重绘和渲染(占用更高) 更多...
 
std::wstring m_wstrText
 控件文本 更多...
 
Canvas m_canvas
 画布 更多...
 
BYTE m_alpha = 255
 透明度 更多...
 
bool m_bUseCanvasAlpha = false
 是否使用画布自身的透明度信息 更多...
 
bool m_isAlphaCalculated = false
 画布是否已经计算透明混合颜色 更多...
 
COLORREF m_cBorder = MODERN_BORDER_GRAY
 边框颜色 更多...
 
COLORREF m_cBackground = CLASSICGRAY
 背景色 更多...
 
COLORREF m_cText = BLACK
 文本颜色 更多...
 
bool m_bEnableBorder = true
 是否绘制边框 更多...
 
int m_nBorderThickness = 1
 边框粗细 更多...
 
bool m_bCompleteFirstSetRect = false
 是否已经完成第一次设置区域 更多...
 
ControlBasem_pParent = nullptr
 父控件 更多...
 
std::list< ControlBase * > m_listChild
 子控件 更多...
 
bool m_bAutoSizeForChild = false
 为子控件自动改变大小以容纳控件 更多...
 
MESSAGE_PROC_FUNC m_funcMessageProc = nullptr
 消息处理函数 更多...
 
MESSAGE_PROC_FUNC_CLASS m_funcMessageProc_Class = nullptr
 若绑定的消息处理函数是静态类函数,则记录其地址 更多...
 
void * m_pCalledClass = nullptr
 若绑定的消息处理函数是静态类函数,则记录该类指针 更多...
 
bool m_bHovered = false
 鼠标是否悬停 更多...
 
bool m_bPressed = false
 鼠标是否按下 更多...
 
bool m_bFocused = false
 是否拥有焦点 更多...
 
- Protected 属性 继承自 HiEasyX::Container
RECT m_rct = { 0 }
 容器区域 更多...
 

详细描述

静态(文本、图像)控件

在文件 Static.h16 行定义.

构造及析构函数说明

◆ Static() [1/2]

HiEasyX::Static::Static ( )

在文件 Static.cpp11 行定义.

12  {
13  Init();
14  }

◆ Static() [2/2]

HiEasyX::Static::Static ( int  x,
int  y,
int  w,
int  h,
std::wstring  wstrText = L"" 
)

在文件 Static.cpp16 行定义.

17  {
18  Init();
19  SetRect(x, y, w, h);
20  SetText(wstrText);
21  }

成员函数说明

◆ AddText()

void HiEasyX::Static::AddText ( std::wstring  wstr,
bool  isSetTextColor = false,
COLORREF  cText = 0,
bool  isSetBkColor = false,
COLORREF  cBk = 0 
)
virtual

添加文本

参数
[in]wstr文本
[in]isSetTextColor是否设置此文本颜色
[in]cText文本颜色
[in]isSetBkColor是否设置此文本背景颜色
[in]cBk文本背景色

在文件 Static.cpp53 行定义.

54  {
55  m_wstrText += wstr;
56  if (!isSetTextColor) cText = m_cText;
57  if (!isSetBkColor) cBk = m_cBackground;
58  for (auto& ch : wstr)
59  {
60  m_vecText.push_back({ ch,cText,cBk });
61  }
62 
64  }

◆ ClearText()

void HiEasyX::Static::ClearText ( )
virtual

在文件 Static.cpp45 行定义.

46  {
47  m_wstrText.clear();
48  m_vecText.clear();
49 
51  }

◆ Convert() [1/2]

std::wstring HiEasyX::Static::Convert ( std::vector< Char vecText)
virtual

在文件 Static.cpp34 行定义.

35  {
36  std::wstring wstr;
37  for (auto& ch : vecText)
38  {
39  wstr.push_back(ch.ch);
40  }
41 
42  return wstr;
43  }

◆ Convert() [2/2]

std::vector< Static::Char > HiEasyX::Static::Convert ( std::wstring  wstrText)
virtual

在文件 Static.cpp23 行定义.

24  {
25  std::vector<Static::Char> vec;
26  for (auto& ch : wstrText)
27  {
28  vec.push_back({ ch,m_cText,m_cBackground });
29  }
30 
31  return vec;
32  }

◆ Draw()

void HiEasyX::Static::Draw ( bool  draw_child = true)
overridevirtual

绘制控件

参数
[in]draw_child是否绘制子控件

重载 HiEasyX::ControlBase .

在文件 Static.cpp101 行定义.

102  {
103  if (m_bRedraw)
104  {
105  ControlBase::Draw(false);
106 
107  if (m_pImgBlock)
108  {
112  { 0 },
114  );
115  }
116 
117  Draw_Text();
118  }
119 
120  if (draw_child)
121  {
122  DrawChild();
123  }
124  }

◆ Draw_Text()

void HiEasyX::Static::Draw_Text ( int  nTextOffsetX = 0,
int  nTextOffsetY = 0 
)
overridevirtual

重载 HiEasyX::ControlBase .

在文件 Static.cpp82 行定义.

83  {
84  int w = m_canvas.TextWidth(m_wstrText.c_str());
85  int h = m_canvas.TextHeight(m_wstrText.c_str());
86 
88  (GetWidth() - w) / 2 + nTextOffsetX,
89  (GetHeight() - h) / 2 + nTextOffsetY
90  );
91 
92  for (auto& ch : m_vecText)
93  {
94  m_canvas.SetBkColor(ch.cBk);
95  m_canvas.OutText(ch.ch, true, ch.cText);
96  }
97 
99  }

◆ GetImage()

virtual ImageBlock* HiEasyX::Static::GetImage ( )
inlinevirtual

获取缓存的图像

在文件 Static.h71 行定义.

71 { return m_pImgBlock; }

◆ GetTextVector()

virtual std::vector<Char>& HiEasyX::Static::GetTextVector ( )
inlinevirtual

在文件 Static.h44 行定义.

44 { return m_vecText; }

◆ Init()

void HiEasyX::Static::Init ( )
protectedvirtual

在文件 Static.cpp5 行定义.

6  {
7  m_bEnableBorder = false;
9  }

◆ SetImage()

void HiEasyX::Static::SetImage ( ImageBlock pImgBlockmg)
virtual

设置显示图像

参数
[in]pImgBlockmg要显示的图像块

在文件 Static.cpp126 行定义.

127  {
128  m_pImgBlock = pImgBlock;
129 
131  }

◆ SetText() [1/2]

void HiEasyX::Static::SetText ( std::vector< Char vecText)

在文件 Static.cpp74 行定义.

75  {
76  m_wstrText = Convert(vecText);
77  m_vecText = vecText;
78 
80  }

◆ SetText() [2/2]

void HiEasyX::Static::SetText ( std::wstring  wstrText)
overridevirtual

重载 HiEasyX::ControlBase .

在文件 Static.cpp66 行定义.

67  {
68  m_wstrText = wstrText;
69  m_vecText = Convert(wstrText);
70 
72  }

类成员变量说明

◆ m_pImgBlock

ImageBlock* HiEasyX::Static::m_pImgBlock = nullptr
protected

在文件 Static.h30 行定义.

◆ m_vecText

std::vector<Char> HiEasyX::Static::m_vecText
protected

在文件 Static.h29 行定义.


该类的文档由以下文件生成:
HiEasyX::ControlBase::MarkNeedRedrawAndRender
void MarkNeedRedrawAndRender()
标记需要重绘和渲染
Definition: ControlBase.cpp:62
HiEasyX::ImageBlock::x
int x
Definition: HiCanvas.h:780
HiEasyX::ControlBase::m_wstrText
std::wstring m_wstrText
控件文本
Definition: ControlBase.h:67
HiEasyX::Static::Draw_Text
void Draw_Text(int nTextOffsetX=0, int nTextOffsetY=0) override
Definition: Static.cpp:82
HiEasyX::Static::m_pImgBlock
ImageBlock * m_pImgBlock
Definition: Static.h:30
HiEasyX::ControlBase::DrawChild
virtual void DrawChild()
绘制子控件
Definition: ControlBase.cpp:246
HiEasyX::Canvas::TextHeight
int TextHeight(LPCTSTR lpszText)
Definition: HiCanvas.cpp:1231
HiEasyX::Static::Convert
virtual std::vector< Char > Convert(std::wstring wstrText)
Definition: Static.cpp:23
HiEasyX::Container::GetWidth
int GetWidth() const
Definition: HiContainer.h:65
HiEasyX::ControlBase::m_cText
COLORREF m_cText
文本颜色
Definition: ControlBase.h:76
HiEasyX::Container::GetHeight
int GetHeight() const
Definition: HiContainer.h:69
HiEasyX::Static::m_vecText
std::vector< Char > m_vecText
Definition: Static.h:29
HiEasyX::ControlBase::m_canvas
Canvas m_canvas
画布
Definition: ControlBase.h:69
HiEasyX::ControlBase::m_bEnableBorder
bool m_bEnableBorder
是否绘制边框
Definition: ControlBase.h:78
HiEasyX::ControlBase::Draw
virtual void Draw(bool draw_child=true)
绘制控件
Definition: ControlBase.cpp:224
HiEasyX::Canvas::TextWidth
int TextWidth(LPCTSTR lpszText)
获取文本像素宽度
Definition: HiCanvas.cpp:1209
HiEasyX::ImageBlock::alpha
BYTE alpha
绘制到图层时的叠加透明度
Definition: HiCanvas.h:786
HiEasyX::Static::SetText
void SetText(std::wstring wstrText) override
Definition: Static.cpp:66
HiEasyX::Canvas::PutImageIn_Alpha
void PutImageIn_Alpha(int x, int y, IMAGE *pImg, RECT crop={ 0 }, BYTE alpha=255, bool bUseSrcAlpha=false, bool isCalculated=false)
绘制图像到该画布
Definition: HiCanvas.cpp:1577
HiEasyX::Container::SetRect
void SetRect(int x, int y, int w, int h)
设置位置和宽高
Definition: HiContainer.cpp:26
HiEasyX::Canvas::SetBkColor
void SetBkColor(COLORREF color)
Definition: HiCanvas.cpp:676
HiEasyX::Canvas::OutText
void OutText(LPCTSTR lpszText, bool isSetColor=false, COLORREF c=0)
Definition: HiCanvas.cpp:1520
HiEasyX::Canvas::MoveTo
void MoveTo(int x, int y)
Definition: HiCanvas.cpp:1482
HiEasyX::ControlBase::m_bAutoRedrawWhenReceiveMsg
bool m_bAutoRedrawWhenReceiveMsg
当默认消息处理函数接受到消息时,是否自动标识重绘和渲染
Definition: ControlBase.h:60
HiEasyX::ControlBase::m_bRedraw
bool m_bRedraw
标识需要重绘
Definition: ControlBase.h:61
HiEasyX::ImageBlock::y
int y
图像显示在图层的位置
Definition: HiCanvas.h:780
HiEasyX::Static::Init
virtual void Init()
Definition: Static.cpp:5
HiEasyX::ImageBlock::GetCanvas
Canvas * GetCanvas() const
Definition: HiCanvas.h:816
HiEasyX::ImageBlock::bUseSrcAlpha
bool bUseSrcAlpha
是否使用图像自身的 alpha 数据
Definition: HiCanvas.h:782
HiEasyX::ControlBase::m_cBackground
COLORREF m_cBackground
背景色
Definition: ControlBase.h:75
HiEasyX::ImageBlock::isAlphaCalculated
bool isAlphaCalculated
图像色值是否已混合透明度(使用自身透明度时有效)
Definition: HiCanvas.h:784