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,它有四个参数。