/
EditBox.cpp
63 lines (50 loc) · 1.39 KB
/
EditBox.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include "EditBox.h"
#define CEDITWNDCLASS _T("Edit")
#define Edit_AddString(hEdit, lpwStr) \
{ S}
#define Edit_GetSel(hEdit, pSt, pEd) SendMessage(hEdit, EM_GETSEL, (WPARAM)pSt, (LPARAM)pEd)
CEditBox::CEditBox(DWORD dwCtrlId) : CWin(dwCtrlId, CEDITWNDCLASS)
{
}
CEditBox::~CEditBox(void)
{
}
HWND CEditBox::Create(DWORD dwExStyle, LPCTSTR lpszWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, CWin* pParent)
{
HWND hRes = CWin::Create(dwExStyle, CEDITWNDCLASS, lpszWindowName, dwStyle, x, y, nWidth, nHeight, pParent, (HMENU)this->m_dwWinId);
AttachToWindow(hRes);
return hRes;
}
void CEditBox::GetSel(LPDWORD pStart, LPDWORD pEnd)
{
Edit_GetSel(this->GetHWnd(), pStart, pEnd);
}
int CEditBox::GetTextLength()
{
return GetWindowTextLength(this->GetHWnd());
}
int CEditBox::SetText(LPCTSTR szText)
{
return SetWindowText(this->GetHWnd(), szText);
}
int CEditBox::GetText(LPTSTR szBuff, UINT bufsiz)
{
return GetWindowText(this->GetHWnd(), szBuff, bufsiz);
}
void CEditBox::AddText(LPCTSTR szText)
{
SendMessage(this->GetHWnd(), EM_SETSEL, GetTextLength(), -1);
SendMessage(this->GetHWnd(), EM_REPLACESEL, 0L, (LPARAM)(LPTSTR)(szText));
}
void CEditBox::Clear(void)
{
SetText(_T(""));
}
void CEditBox::SelectAll(void)
{
SendMessage(this->GetHWnd(), EM_SETSEL, 0, GetTextLength());
}
void CEditBox::SetLimit(int iLimit)
{
SendMessage(this->GetHWnd(), EM_LIMITTEXT, (WPARAM)iLimit, 0);
}