类向导如何给编辑框关键变量

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

猜你喜欢

转载自blog.csdn.net/cai_niaocainiao/article/details/81365742