天天看點

《實用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