天天看点

《实用VC编程之玩转控件》第5课:Edit编辑框控件

本文转载自:VC驿站

https://www.cctry.com/thread-297423-1-1.html

1、设置编辑框控件内的文本内容:

TCHAR szText[] = _T("hello world.");

::SendMessage(::GetDlgItem(m_hWnd, IDC_EDIT1), WM_SETTEXT, 0, (LPARAM)szText);

::SetDlgItemText(m_hWnd, IDC_EDIT1, szText);

GetDlgItem(IDC_EDIT1)->SetWindowText(szText);

SetDlgItemText(IDC_EDIT1, szText);

m_Edit.SetWindowText(szText);

以上任意一种方法都可以实现。

2、获取编辑框控件内的文本内容:

const DWORD dwCopyLen = MAX_PATH;

TCHAR szText[dwCopyLen] = { 0 };

::SendMessage(::GetDlgItem(m_hWnd, IDC_EDIT1), WM_GETTEXT, (WPARAM)dwCopyLen, (LPARAM)szText);

::GetDlgItemText(m_hWnd, IDC_EDIT1, szText, MAX_PATH);

::GetWindowText(::GetDlgItem(m_hWnd, IDC_EDIT1), szText, MAX_PATH);

CString strText;

m_Edit.GetWindowText(strText);

以上任意一种方法都可以实现。

3、编辑框控件的属性介绍:

a、让编辑框文本为只读模式;

b、让编辑框文本为密码模式;

d、让编辑框支持多行显示,即:自动换行;

e、让编辑框显示滚动条;

f、让编辑框只能接受数字输入;

g、让编辑框只能输入指定范围的数组;

h、如果还有其他方面的限制要求,那只能是利用接下来要讲解的事件通知的方式来处理了。

4、事件通知:

a、当编辑框内的文本内容发生变化时通知我,响应 EN_CHANGE 事件;

5、向编辑框的结尾增加数据:

TCHAR szMsg[] = _T("hello world.\r\n");

int iLen = m_Edit.GetWindowTextLength();

m_Edit.SetSel(iLen, iLen, TRUE);

m_Edit.ReplaceSel(szMsg, FALSE);

6、始终显示最新的数据(光标定位到文本结尾):

 m_Edit.SetFocus();

m_Edit.SetSel(-1);

7、编辑框控件的长度限制:

默认情况下编辑框控件的文本长度有限制,大家可以调用这个函数获取一下:

UINT nLimitLen = m_Edit.GetLimitText();

看到多少了吧?要解除这个限制呢,或者改成更大一些?

m_Edit.SetLimitText(0);

8、小作业:

只读属性的编辑框是灰色的,如何搞成是只读但不是灰色的呢?

9、开源控件类:

https://www.codeproject.com/Arti ... ol-with-web-like-pr

《实用VC编程之玩转控件》第5课:Edit编辑框控件

https://www.codeproject.com/Arti ... -with-Browse-Button

《实用VC编程之玩转控件》第5课:Edit编辑框控件

https://www.codeproject.com/Arti ... s-RichEdit-Controls

《实用VC编程之玩转控件》第5课:Edit编辑框控件

备注:具体操作见视频教程讲解与演示!

第5课免费试看,下载地址:

https://www.cctry.com/thread-297423-1-1.html