一、介紹
MFC(Microsoft Foundation Classes)Edit控制項是Windows操作系統提供的一種文本編輯器控制項,可以被應用程序嵌入,使用戶可以在程序中進行文本輸入、編輯和查看等操作。
本文將從控制項的創建、消息響應、屬性設置等方面進行詳細的闡述,並提供相應的代碼示例。
二、基本使用
創建MFC Edit控制項一般步驟如下:
1、在對話框編輯器中拖拽Edit控制項,或者通過CDialog::CreateWindowEx()方法動態創建;
2、在代碼中獲取控制項的指針;
3、設置控制項屬性和關聯事件。
//創建控制項
BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_edit.Create(WS_VISIBLE|WS_CHILD|ES_AUTOHSCROLL|ES_LEFT,
CRect(10,10,200,30), this, IDC_EDIT_CTRL);
//獲取指針
GetDlgItem(IDC_EDIT_CTRL, &m_edit);
//設置默認文本
m_edit.SetWindowText(_T("Hello world!"));
return TRUE;
}
以上代碼會在窗口中創建一個寬度為190,高度為20的Edit控制項,控制項ID為IDC_EDIT_CTRL,初始文本為「Hello world!」。
三、消息響應
Edit控制項的常見消息有:
- EN_CHANGE:當控制項內容發生改變時觸發。
- EN_SETFOCUS:控制項獲得焦點時觸發。
- EN_KILLFOCUS:控制項失去焦點時觸發。
通過重載CWnd類的OnEnChange()、OnEnSetFocus()、OnEnKillFocus()等函數可以響應不同的消息事件。
//消息響應函數
void CMyDlg::OnEnChangeEditCtrl()
{
CString strText;
//獲取控制項文本
m_edit.GetWindowText(strText);
AfxMessageBox(strText);
}
以上代碼會在Edit控制項內容發生變化時彈出一個消息框顯示當前文本內容。
四、屬性設置
MFC Edit控制項常見的屬性包括:
- ReadOnly:只讀屬性,設置為TRUE則不能編輯。
- PasswordChar:密碼符號屬性,可以將用戶輸入的文本顯示為指定字元,常用於密碼輸入框。
- LimitText:文本長度限制屬性,可以限制用戶輸入的文本長度。
- Font:控制項字體屬性,可以設置控制項顯示的字體、大小、顏色等。
//屬性設置
BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_edit.Create(WS_VISIBLE|WS_CHILD|ES_AUTOHSCROLL|ES_LEFT,
CRect(10,10,200,30), this, IDC_EDIT_CTRL);
//獲取指針
GetDlgItem(IDC_EDIT_CTRL, &m_edit);
//設置默認文本
m_edit.SetWindowText(_T("Hello world!"));
//設置只讀
m_edit.SetReadOnly(TRUE);
//設置密碼符號
m_edit.SetPasswordChar('*');
//設置文本長度限制
m_edit.LimitText(50);
//設置字體
CFont font;
font.CreatePointFont(12, _T("Arial"));
m_edit.SetFont(&font);
return TRUE;
}
以上代碼會在Edit控制項創建時設置控制項為只讀,文本顯示為「*」符號,限制最大文本輸入長度為50個字元,並設置字體為Arial,大小為12。
五、總結
MFC Edit控制項可以實現在程序中進行文本輸入與編輯功能。本文從控制項的創建、消息響應、屬性設置等方面進行了詳細的闡述,希望對讀者有所幫助。
原創文章,作者:ZSJNG,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/368347.html