https://blog.csdn.net/yu_gi_oh/article/details/51812980
UpdateData(TRUE);//将控件上显示上的数据更新到关联变量
UpdateData(FALSE);将关联变量的值更新到控件显示。
当你改变控件对应的关联变量的值的时候,要使用UpdateData(FALSE)来更新显示。
当你在界面上更改控件的值的时候,你要使用UpdateData(TRUE);将值更新到关联变量
或者如果不使用关联变量,可以使用GetDlgItemText(IDC_EDIT,str);或SetDlgItemText(IDC_EDIT,str)来更改控件的值的时候,就不需要UpdateData()函数
msdn中也确是这么定义的:
int GetWindowText( LPTSTR lpszStringBuf, int nMaxCount ) const;
void GetWindowTextW( CString& rString ) const;
要实现一个计算加法的功能。三个文本编辑框,分别为IDC_EDIT1 , IDC_EDIT2 , IDC_EDIT3, 一个button控件,点击后可以将IDC_EDIT1中的输入数字加上IDC_EDIT2中的输入数字的结果显示到IDC_EDIT3中。
GetWindowText和GetWindowTextW方法
#include "Tchar.h" // 需要包含此头文件
-
void C计算器Dlg::OnCalculate()
-
{
-
// TODO: 在此添加控件通知处理程序代码
-
int a,b,c;
-
TCHAR ch1[10],ch2[10],ch3[10]; //如果使用char的话,编译提示出错。msdn中给的范例采用TCHAR.
-
CString str1,str2,str3;
-
GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10);
-
GetDlgItem(IDC_EDIT2)->GetWindowText(ch2,10);
-
str1.Format(_T("%s"),ch1);//把TCHAR转换为CString
-
a=_wtoi(str1);// 再把CString转换为int
-
str2.Format(_T("%s"),ch2);
-
b=_wtoi(str2);
-
c=a+b;
-
str3.Format(_T("%d"),c);
-
GetDlgItem(IDC_AND)->SetWindowText(str3);
-
}
-
void CT3View::OnBnClickedButtonResult()
-
{
-
int num1,num2,num3;
-
TCHAR chr1[10],chr2[10],chr3[10]; //如果定义char类的话,编译提示出错。msdn中给的范例采用TCHAR.
-
CString str1,str2,str3;
-
GetDlgItem(IDC_EDIT1)->GetWindowTextW(str1);
-
GetDlgItem(IDC_EDIT2)->GetWindowTextW(str2);
-
num1=_wtoi(str1);// 把CString转换为int
-
num2=_wtoi(str2);
-
num3=num1+num2;
-
str3.Format(_T("%d"),num3);
-
GetDlgItem(IDC_EDIT3)->SetWindowTextW(str3);
-
}