類嚮導如何給編輯框關鍵變量

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,它有四個參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章