1.GetDlgItem(編輯框ID)->GetWindowText 或直接用GetDlgItemText
CEdit* pBoxOne;
pBoxOne = (CEdit*) GetDlgItem(IDC_EDIT1);
用 GetDlgItem(IDC_EDIT1); 返回一個指向這個控件的指針, CEdit* ,存入 pBoxOne。
接下來,就可以用它了,例如:
GotoDlgCtrl(pBoxOne);
2.給編輯框關聯字符串變量 假如叫m_sEdit 用的時候先UpdateData();m_sEdit的內容就是編輯框裏的內容了
UpdateData()參數只有一個,默認爲TRUE。
UpdateData(true);
用窗體上控件中的內容來更新和控件相關連的變量的值(只能更新value類型的變量)
例如:你在你的窗體中有一個Edit控件,爲這個控件關聯了CString類型的變量m_strName;
你在控件中添入內容之後,必須調用UpdateData(true);才能把你添入的內容傳給m_strName這個變量
UpdateData(false);
和上面的正好相反,還是以上面的Edit爲例,當你在程序中改變了m_strName變量的內容的時候,如果你想讓那個Edit也顯示更新後的m_strName,就必須調用UpdateData(false);
這樣在你的Edit中才能顯示更新完的變量的值!
3. 給編輯框關聯控件變量 假如叫m_cEdit 用m_cEdit.GetWindowText 也可以
GetWindowText 的用法:
給編輯框關聯控件變量:
例:
m_name.GetWindowText(str);
如果不使用關聯變量,可以使用GetDlgItemText(IDC_EDIT,str);或SetDlgItemText(IDC_EDIT,str)來更改控件的值的時候,就不需要UpdateData()函數
例:
CEdit *pEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
CString str1;
pEdit->GetWindowText(str1);
(CEdit*)GetDlgItem(IDC_EDIT2)->SetWindowText(str1);
4.SendMessage發WM_GETTEXT消息
WM_SETTEXT:
char * lpszText="123456789";
::SendMessage(GetDlgItem(IDOK)->m_hWnd,WM_SETTEXT,0,(LPARAM)lpszText);
WM_GETTEXT:
char * lpszText = new char[100];
::SendMessage(GetDlgItem(IDCANCEL)->m_hWnd,WM_GETTEXT,100,(LPARAM)lpszText);
MessageBox(lpszText);
注意:
SendMessage是MFC的API,它有三個參數。
::SendMessage是SDK的API,它有四個參數。