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

页控件 更多...

#include <Page.h>

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

Public 成员函数

 Page ()
 
 Page (int w, int h, COLORREF cBk=WHITE)
 
 Page (Canvas *pCanvas)
 
virtual void BindToCanvas (Canvas *pCanvas)
 绑定到画布,渲染时默认输出到此画布 更多...
 
virtual void push (ControlBase *pCtrl, int offset_x=0, int offset_y=0)
 加入控件 更多...
 
virtual void push (const std::list< ControlBase * > list)
 
virtual void remove (ControlBase *pCtrl)
 移除控件 更多...
 
void Render (Canvas *dst=nullptr, RECT *pRct=nullptr, int *pCount=0) override
 渲染 更多...
 
void UpdateImage (Canvas *pCanvas=nullptr)
 更新控件,并输出到某画布(控件重绘并渲染) 更多...
 
- 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 SetText (std::wstring wstr)
 
virtual void Draw_Text (int nTextOffsetX=0, int nTextOffsetY=0)
 
virtual void Redraw ()
 重绘控件 更多...
 
virtual void Draw (bool draw_child=true)
 绘制控件 更多...
 
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 (COLORREF cBk=WHITE)
 
- 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 属性

Canvasm_pCanvas = 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 }
 容器区域 更多...
 

详细描述

页控件

在文件 Page.h16 行定义.

构造及析构函数说明

◆ Page() [1/3]

HiEasyX::Page::Page ( )

在文件 Page.cpp17 行定义.

18  {
19  Init();
20  }

◆ Page() [2/3]

HiEasyX::Page::Page ( int  w,
int  h,
COLORREF  cBk = WHITE 
)

在文件 Page.cpp22 行定义.

23  {
24  SetRect(0, 0, w, h);
25  Init(cBk);
26  }

◆ Page() [3/3]

HiEasyX::Page::Page ( Canvas pCanvas)

在文件 Page.cpp28 行定义.

29  {
30  BindToCanvas(pCanvas);
31  Init();
32  }

成员函数说明

◆ BindToCanvas()

void HiEasyX::Page::BindToCanvas ( Canvas pCanvas)
virtual

绑定到画布,渲染时默认输出到此画布

参数
[in]pCanvas画布

在文件 Page.cpp34 行定义.

35  {
36  SetRect(0, 0, pCanvas->GetWidth(), pCanvas->GetHeight());
37  m_pCanvas = pCanvas;
39  }

◆ Init()

void HiEasyX::Page::Init ( COLORREF  cBk = WHITE)
protectedvirtual

在文件 Page.cpp7 行定义.

8  {
9  EnableBorder(false);
10 
11  // TODO:等 EasyX 修好了再启用
12  //SetBkColor(cBk);
13 
15  }

◆ push() [1/2]

void HiEasyX::Page::push ( const std::list< ControlBase * >  list)
virtual

在文件 Page.cpp46 行定义.

47  {
48  for (auto& child : list)
49  AddChild(child);
50  }

◆ push() [2/2]

void HiEasyX::Page::push ( ControlBase pCtrl,
int  offset_x = 0,
int  offset_y = 0 
)
virtual

加入控件

参数
[in]pCtrl控件
[in]offset_x坐标偏移
[in]offset_y坐标偏移

在文件 Page.cpp41 行定义.

42  {
43  AddChild(pCtrl, offset_x, offset_y);
44  }

◆ remove()

void HiEasyX::Page::remove ( ControlBase pCtrl)
virtual

移除控件

参数
[in]pCtrl控件

在文件 Page.cpp52 行定义.

53  {
54  RemoveChild(pCtrl);
55  }

◆ Render()

void HiEasyX::Page::Render ( Canvas dst = nullptr,
RECT *  pRct = nullptr,
int *  pCount = 0 
)
overridevirtual

渲染

参数
[in]dst载体画布(为空则输出到已绑定画布)
[in]pRct内部使用
[in]pCount内部使用

重载 HiEasyX::ControlBase .

在文件 Page.cpp57 行定义.

58  {
59  if (!dst && m_pCanvas)
60  {
61  dst = m_pCanvas;
62  }
63 
64  return ControlBase::Render(dst, pRct, pCount);
65  }

◆ UpdateImage()

void HiEasyX::Page::UpdateImage ( Canvas pCanvas = nullptr)

更新控件,并输出到某画布(控件重绘并渲染)

参数
[in]pCanvas载体画布(为空则输出到已绑定画布)

在文件 Page.cpp67 行定义.

68  {
69  Draw();
70  Render(pCanvas);
71  }

类成员变量说明

◆ m_pCanvas

Canvas* HiEasyX::Page::m_pCanvas = nullptr
protected

在文件 Page.h20 行定义.


该类的文档由以下文件生成:
HiEasyX::Page::m_pCanvas
Canvas * m_pCanvas
Definition: Page.h:20
HiEasyX::Page::Render
void Render(Canvas *dst=nullptr, RECT *pRct=nullptr, int *pCount=0) override
渲染
Definition: Page.cpp:57
HiEasyX::Page::BindToCanvas
virtual void BindToCanvas(Canvas *pCanvas)
绑定到画布,渲染时默认输出到此画布
Definition: Page.cpp:34
HiEasyX::ControlBase::Render
virtual void Render(Canvas *dst, RECT *pRct=nullptr, int *pCount=0)
渲染控件到外部
Definition: ControlBase.cpp:254
HiEasyX::ControlBase::RemoveChild
virtual void RemoveChild(ControlBase *p)
Definition: ControlBase.cpp:131
HiEasyX::ControlBase::Draw
virtual void Draw(bool draw_child=true)
绘制控件
Definition: ControlBase.cpp:224
HiEasyX::Container::SetRect
void SetRect(int x, int y, int w, int h)
设置位置和宽高
Definition: HiContainer.cpp:26
HiEasyX::Canvas::GetBkColor
COLORREF GetBkColor()
Definition: HiCanvas.cpp:665
HiEasyX::ControlBase::m_bAutoRedrawWhenReceiveMsg
bool m_bAutoRedrawWhenReceiveMsg
当默认消息处理函数接受到消息时,是否自动标识重绘和渲染
Definition: ControlBase.h:60
HiEasyX::ControlBase::AddChild
virtual void AddChild(ControlBase *p, int offset_x=0, int offset_y=0)
Definition: ControlBase.cpp:118
HiEasyX::Page::Init
virtual void Init(COLORREF cBk=WHITE)
Definition: Page.cpp:7
HiEasyX::ControlBase::EnableBorder
virtual void EnableBorder(bool bEnableBorder, COLORREF color=BLACK, int thickness=1)
Definition: ControlBase.cpp:175
HiEasyX::ControlBase::SetBkColor
virtual void SetBkColor(COLORREF color)
Definition: ControlBase.cpp:159