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

系统输入框控件 更多...

#include <SysEdit.h>

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

struct  PreStyle
 编辑框预设样式(必须在创建前设置才有效) 更多...
 

Public 成员函数

 SysEdit ()
 
 SysEdit (HWND hParent, RECT rct, std::wstring strText=L"")
 
 SysEdit (HWND hParent, int x, int y, int w, int h, std::wstring strText=L"")
 
 ~SysEdit () override
 
void PreSetStyle (PreStyle pre_style)
 在创建控件前预设控件样式 更多...
 
LRESULT UpdateMessage (UINT msg, WPARAM wParam, LPARAM lParam, bool &bRet) override
 更新消息,此函数无需用户调用 更多...
 
void RegisterMessage (void(*pFunc)(std::wstring wstrText))
 注册输入消息 更多...
 
void RightAlign (bool enable)
 设置文本右对齐 更多...
 
void Uppercase (bool enable)
 自动转大写 更多...
 
void Lowercase (bool enable)
 自动转小写 更多...
 
void Password (bool enable)
 设置密码框 更多...
 
void ReadOnly (bool enable)
 设置只读 更多...
 
void NumberOnly (bool enable)
 设置仅数字 更多...
 
int GetMaxTextLength ()
 获取最大输入长度 更多...
 
void SetMaxTextLength (int len)
 限制最大输入长度 更多...
 
void SetBkColor (COLORREF color)
 设置控件背景色 更多...
 
void SetTextBkColor (COLORREF color)
 设置文本背景色 更多...
 
void SetTextColor (COLORREF color)
 设置文本颜色 更多...
 
void GetSel (int *begin, int *end)
 获取光标选择区域 更多...
 
void SetSel (int begin, int end)
 设置光标选择区域 更多...
 
void Copy ()
 复制选中的文本 更多...
 
void Cut ()
 剪切选中的文本 更多...
 
void Paste ()
 从剪切板黏贴文本到当前位置 更多...
 
void Delete ()
 删除选中的文本 更多...
 
void Replace (std::wstring wstrText)
 替换选中的文本 更多...
 
bool IsEdited ()
 判断是否被编辑 更多...
 
- 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 }
 容器区域 更多...
 

详细描述

系统输入框控件

在文件 SysEdit.h18 行定义.

构造及析构函数说明

◆ SysEdit() [1/3]

HiEasyX::SysEdit::SysEdit ( )

在文件 SysEdit.cpp21 行定义.

22  {
23  }

◆ SysEdit() [2/3]

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

在文件 SysEdit.cpp25 行定义.

26  {
27  Create(hParent, rct, strText);
28  }

◆ SysEdit() [3/3]

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

在文件 SysEdit.cpp30 行定义.

31  {
32  Create(hParent, x, y, w, h, strText);
33  }

◆ ~SysEdit()

HiEasyX::SysEdit::~SysEdit ( )
override

在文件 SysEdit.cpp35 行定义.

36  {
37  if (hBk)
38  DeleteBrush(hBk);
39  }

成员函数说明

◆ Copy()

void HiEasyX::SysEdit::Copy ( )

复制选中的文本

在文件 SysEdit.cpp197 行定义.

198  {
199  SendMessage(GetHandle(), WM_COPY, 0, 0);
200  }

◆ Cut()

void HiEasyX::SysEdit::Cut ( )

剪切选中的文本

在文件 SysEdit.cpp202 行定义.

203  {
204  SendMessage(GetHandle(), WM_CUT, 0, 0);
205  }

◆ Delete()

void HiEasyX::SysEdit::Delete ( )

删除选中的文本

在文件 SysEdit.cpp212 行定义.

213  {
214  SendMessage(GetHandle(), WM_CLEAR, 0, 0);
215  }

◆ GetMaxTextLength()

int HiEasyX::SysEdit::GetMaxTextLength ( )

获取最大输入长度

在文件 SysEdit.cpp156 行定义.

157  {
158  return (int)SendMessage(GetHandle(), EM_GETLIMITTEXT, 0, 0);
159  }

◆ GetSel()

void HiEasyX::SysEdit::GetSel ( int *  begin,
int *  end 
)

获取光标选择区域

参数
[out]begin光标起始位置
[out]end选择结束位置

在文件 SysEdit.cpp187 行定义.

188  {
189  SendMessage(GetHandle(), EM_GETSEL, (WPARAM)begin, (LPARAM)end);
190  }

◆ IsEdited()

bool HiEasyX::SysEdit::IsEdited ( )

判断是否被编辑

在文件 SysEdit.cpp222 行定义.

223  {
224  bool r = m_bEdited;
225  m_bEdited = false;
226  return r;
227  }

◆ Lowercase()

void HiEasyX::SysEdit::Lowercase ( bool  enable)

自动转小写

参数
[in]enable是否启用转小写

在文件 SysEdit.cpp131 行定义.

132  {
133  //m_property.uppercase = !enable;
134  m_property.lowercase = enable;
135  ApplyProperty();
136  }

◆ NumberOnly()

void HiEasyX::SysEdit::NumberOnly ( bool  enable)

设置仅数字

参数
[in]enable是否启用仅数字输入

在文件 SysEdit.cpp150 行定义.

151  {
152  m_property.number_only = enable;
153  ApplyProperty();
154  }

◆ Password()

void HiEasyX::SysEdit::Password ( bool  enable)

设置密码框

参数
[in]enable是否启用密码框

在文件 SysEdit.cpp138 行定义.

139  {
140  m_property.password = enable;
141  ApplyProperty();
142  }

◆ Paste()

void HiEasyX::SysEdit::Paste ( )

从剪切板黏贴文本到当前位置

在文件 SysEdit.cpp207 行定义.

208  {
209  SendMessage(GetHandle(), WM_PASTE, 0, 0);
210  }

◆ PreSetStyle()

void HiEasyX::SysEdit::PreSetStyle ( PreStyle  pre_style)

在创建控件前预设控件样式

在文件 SysEdit.cpp41 行定义.

42  {
43  m_lBasicStyle |= (
44  (pre_style.multiline ? ES_MULTILINE : 0)
45  | (pre_style.center_text ? ES_CENTER : 0)
46  | (pre_style.vscroll ? WS_VSCROLL : 0)
47  | (pre_style.auto_vscroll ? ES_AUTOVSCROLL : 0)
48  | (pre_style.hscroll ? WS_HSCROLL : 0)
49  | (pre_style.auto_hscroll ? ES_AUTOHSCROLL : 0)
50  );
51  }

◆ ReadOnly()

void HiEasyX::SysEdit::ReadOnly ( bool  enable)

设置只读

参数
[in]enable是否启用只读

在文件 SysEdit.cpp144 行定义.

145  {
146  m_property.read_only = enable;
147  ApplyProperty();
148  }

◆ RealCreate()

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

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

参数
[in]hParent父控件句柄

实现了 HiEasyX::SysControlBase.

在文件 SysEdit.cpp5 行定义.

6  {
9  hParent,
10  L"Edit",
11  L"",
12  m_lBasicStyle
13  );
14 
15  ApplyProperty();
16 
17  // 创建画刷
18  SetBkColor(m_cBk);
19  }

◆ RegisterMessage()

void HiEasyX::SysEdit::RegisterMessage ( void(*)(std::wstring wstrText)  pFunc)

注册输入消息

参数
[in]pFunc消息响应函数

在文件 SysEdit.cpp89 行定义.

90  {
91  m_pFunc = pFunc;
92  }

◆ Replace()

void HiEasyX::SysEdit::Replace ( std::wstring  wstrText)

替换选中的文本

参数
[in]wstrText替换文本

在文件 SysEdit.cpp217 行定义.

218  {
219  SendMessage(GetHandle(), EM_REPLACESEL, true, (LPARAM)wstrText.c_str());
220  }

◆ RightAlign()

void HiEasyX::SysEdit::RightAlign ( bool  enable)

设置文本右对齐

参数
[in]enable是否启用右对齐

在文件 SysEdit.cpp117 行定义.

118  {
119  m_property.left_align = !enable;
120  m_property.right_align = enable;
121  ApplyProperty();
122  }

◆ SetBkColor()

void HiEasyX::SysEdit::SetBkColor ( COLORREF  color)

设置控件背景色

参数
[in]color控件背景色

在文件 SysEdit.cpp166 行定义.

167  {
168  m_cBk = color;
169  if (hBk)
170  DeleteBrush(hBk);
171  hBk = CreateSolidBrush(color);
172  InvalidateRect(GetHandle(), nullptr, true);
173  }

◆ SetMaxTextLength()

void HiEasyX::SysEdit::SetMaxTextLength ( int  len)

限制最大输入长度

参数
[in]len最大输入长度

在文件 SysEdit.cpp161 行定义.

162  {
163  SendMessage(GetHandle(), EM_SETLIMITTEXT, (WPARAM)len, 0);
164  }

◆ SetSel()

void HiEasyX::SysEdit::SetSel ( int  begin,
int  end 
)

设置光标选择区域

参数
[in]begin光标起始位置
[in]end选择结束位置(为 -1 可表示结尾)

在文件 SysEdit.cpp192 行定义.

193  {
194  SendMessage(GetHandle(), EM_SETSEL, begin, end);
195  }

◆ SetTextBkColor()

void HiEasyX::SysEdit::SetTextBkColor ( COLORREF  color)

设置文本背景色

参数
[in]color文本背景色

在文件 SysEdit.cpp175 行定义.

176  {
177  m_cTextBk = color;
178  InvalidateRect(GetHandle(), nullptr, true);
179  }

◆ SetTextColor()

void HiEasyX::SysEdit::SetTextColor ( COLORREF  color)

设置文本颜色

参数
[in]color文本颜色

在文件 SysEdit.cpp181 行定义.

182  {
183  m_cText = color;
184  InvalidateRect(GetHandle(), nullptr, true);
185  }

◆ UpdateMessage()

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

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

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

重载 HiEasyX::SysControlBase .

在文件 SysEdit.cpp53 行定义.

54  {
55  switch (msg)
56  {
57  case WM_COMMAND:
58  if (LOWORD(wParam) == GetID())
59  {
60  switch (HIWORD(wParam))
61  {
62  case EN_UPDATE:
63  m_bEdited = true;
64  if (m_pFunc)
65  m_pFunc(GetText());
66  break;
67  }
68  }
69  break;
70 
71  case WM_CTLCOLOREDIT:
72  if ((HWND)lParam == GetHandle())
73  {
74  ::SetBkColor((HDC)wParam, m_cTextBk);
75  ::SetTextColor((HDC)wParam, m_cText);
76  //::SetBkMode((HDC)wParam, TRANSPARENT);
77 
78  bRet = true;
79  return (INT_PTR)hBk;
80  //return (LRESULT)GetStockObject(WHITE_BRUSH);
81  }
82  break;
83  }
84 
85  bRet = false;
86  return 0;
87  }

◆ Uppercase()

void HiEasyX::SysEdit::Uppercase ( bool  enable)

自动转大写

参数
[in]enable是否启用转大写

在文件 SysEdit.cpp124 行定义.

125  {
126  m_property.uppercase = enable;
127  //m_property.lowercase = !enable;
128  ApplyProperty();
129  }

该类的文档由以下文件生成:
HiEasyX::SCT_Edit
Definition: SysControlBase.h:28
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::SysEdit::SetTextColor
void SetTextColor(COLORREF color)
设置文本颜色
Definition: SysEdit.cpp:181
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::SysEdit::SetBkColor
void SetBkColor(COLORREF color)
设置控件背景色
Definition: SysEdit.cpp:166
HiEasyX::SysControlBase::m_hWnd
HWND m_hWnd
Definition: SysControlBase.h:48
HiEasyX::SysControlBase::GetText
std::wstring GetText()
Definition: SysControlBase.cpp:126