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

系统按钮控件 更多...

#include <SysButton.h>

类 HiEasyX::SysButton 继承关系图:
HiEasyX::SysControlBase HiEasyX::Container

Public 成员函数

 SysButton ()
 
 SysButton (HWND hParent, RECT rct, std::wstring strText=L"")
 
 SysButton (HWND hParent, int x, int y, int w, int h, std::wstring strText=L"")
 
LRESULT UpdateMessage (UINT msg, WPARAM wParam, LPARAM lParam, bool &bRet) override
 更新消息,此函数无需用户调用 更多...
 
void RegisterMessage (void(*pFunc)())
 注册点击消息 更多...
 
void Image (bool enable, IMAGE *img=nullptr, bool reserve_text=false)
 设置图片 更多...
 
int GetClickCount ()
 获取点击次数 更多...
 
bool IsClicked ()
 
- Public 成员函数 继承自 HiEasyX::SysControlBase
 SysControlBase ()
 
virtual ~SysControlBase ()
 
void UpdateRect (RECT rctOld) override
 响应更新区域消息 更多...
 
HWND Create (HWND hParent, RECT rct, std::wstring strText=L"")
 
HWND Create (HWND hParent, int x, int y, int w, int h, std::wstring strText=L"")
 
void Remove ()
 移除控件 更多...
 
HWND GetHandle () const
 
SysControlType GetControlType () const
 获取此控件类型 更多...
 
bool IsEnable ()
 
void Enable (bool enable)
 
bool IsVisible ()
 
void Show (bool show)
 
bool IsFocused ()
 
void SetFocus (bool focused)
 
int GetTextLength ()
 
std::wstring GetText ()
 
void SetText (std::wstring wstr)
 
HFONT GetFont ()
 
void SetFont (int h, int w=0, std::wstring typeface=L"")
 
int GetID ()
 
- 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 成员函数

void RealCreate (HWND hParent) override
 实际调用的创建控件函数(各种控件实现不同,但内部都调用 CreateControl 创建控件) 更多...
 
- Protected 成员函数 继承自 HiEasyX::SysControlBase
HWND CreateControl (HWND hParent, LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle)
 创建控件 更多...
 

额外继承的成员函数

- Protected 属性 继承自 HiEasyX::SysControlBase
HWND m_hWnd = nullptr
 
HWND m_hParent = nullptr
 
int m_nID = 0
 
SysControlType m_type = SCT_Unknown
 
- Protected 属性 继承自 HiEasyX::Container
RECT m_rct = { 0 }
 容器区域 更多...
 

详细描述

系统按钮控件

在文件 SysButton.h18 行定义.

构造及析构函数说明

◆ SysButton() [1/3]

HiEasyX::SysButton::SysButton ( )

在文件 SysButton.cpp18 行定义.

19  {
20  }

◆ SysButton() [2/3]

HiEasyX::SysButton::SysButton ( HWND  hParent,
RECT  rct,
std::wstring  strText = L"" 
)

在文件 SysButton.cpp22 行定义.

23  {
24  Create(hParent, rct, strText);
25  }

◆ SysButton() [3/3]

HiEasyX::SysButton::SysButton ( HWND  hParent,
int  x,
int  y,
int  w,
int  h,
std::wstring  strText = L"" 
)

在文件 SysButton.cpp27 行定义.

28  {
29  Create(hParent, x, y, w, h, strText);
30  }

成员函数说明

◆ GetClickCount()

int HiEasyX::SysButton::GetClickCount ( )

获取点击次数

在文件 SysButton.cpp72 行定义.

73  {
74  int c = m_nClickCount;
75  m_nClickCount = 0;
76  return c;
77  }

◆ Image()

void HiEasyX::SysButton::Image ( bool  enable,
IMAGE *  img = nullptr,
bool  reserve_text = false 
)

设置图片

参数
[in]enable是否启用按钮图片
[in]img图片
[in]reserve_text是否保留按钮中的文字

在文件 SysButton.cpp53 行定义.

54  {
55  long style = GetWindowLong(GetHandle(), GWL_STYLE);
56  if (enable)
57  style |= BS_BITMAP;
58  else
59  style &= ~BS_BITMAP;
60  if (!enable || (enable && !reserve_text))
61  {
62  SetWindowLongPtr(GetHandle(), GWL_STYLE, style);
63  }
64  if (enable)
65  {
66  HBITMAP hBitmap = Image2Bitmap(img, false);
67  SendMessage(GetHandle(), BM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmap);
68  DeleteObject(hBitmap);
69  }
70  }

◆ IsClicked()

bool HiEasyX::SysButton::IsClicked ( )
    判断是否点击按键
 备注:
    建议使用 GetClickCount,使用此函数可能丢失点击次数信息

在文件 SysButton.cpp79 行定义.

80  {
81  return GetClickCount();
82  }

◆ RealCreate()

void HiEasyX::SysButton::RealCreate ( HWND  hParent)
overrideprotectedvirtual

实际调用的创建控件函数(各种控件实现不同,但内部都调用 CreateControl 创建控件)

参数
[in]hParent父控件句柄

实现了 HiEasyX::SysControlBase.

在文件 SysButton.cpp7 行定义.

8  {
11  hParent,
12  L"Button",
13  L"",
14  WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON
15  );
16  }

◆ RegisterMessage()

void HiEasyX::SysButton::RegisterMessage ( void(*)()  pFunc)

注册点击消息

参数
[in]pFunc消息处理函数

在文件 SysButton.cpp48 行定义.

49  {
50  m_pFunc = pFunc;
51  }

◆ UpdateMessage()

LRESULT HiEasyX::SysButton::UpdateMessage ( UINT  msg,
WPARAM  wParam,
LPARAM  lParam,
bool &  bRet 
)
overridevirtual

更新消息,此函数无需用户调用

参数
[in]msg新消息
[in]wParam参数
[in]lParam参数
[out]bRet标记是否返回值
返回
不定返回值

重载 HiEasyX::SysControlBase .

在文件 SysButton.cpp32 行定义.

33  {
34  if (msg == WM_COMMAND)
35  {
36  if (LOWORD(wParam) == GetID())
37  {
38  m_nClickCount++;
39  if (m_pFunc)
40  m_pFunc();
41  }
42  }
43 
44  bRet = false;
45  return 0;
46  }

该类的文档由以下文件生成:
HiEasyX::SysButton::GetClickCount
int GetClickCount()
获取点击次数
Definition: SysButton.cpp:72
Image2Bitmap
HBITMAP Image2Bitmap(IMAGE *img, bool enable_alpha)
得到 IMAGE 对象的 HBITMAP
Definition: HiFunc.cpp:47
HiEasyX::SysControlBase::CreateControl
HWND CreateControl(HWND hParent, LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle)
创建控件
Definition: SysControlBase.cpp:17
HiEasyX::SysControlBase::GetHandle
HWND GetHandle() const
Definition: SysControlBase.h:109
HiEasyX::SysControlBase::GetID
int GetID()
Definition: SysControlBase.cpp:168
HiEasyX::SysControlBase::m_type
SysControlType m_type
Definition: SysControlBase.h:51
HiEasyX::SysControlBase::Create
HWND Create(HWND hParent, RECT rct, std::wstring strText=L"")
Definition: SysControlBase.cpp:58
HiEasyX::SCT_Button
Definition: SysControlBase.h:25
HiEasyX::SysControlBase::m_hWnd
HWND m_hWnd
Definition: SysControlBase.h:48