目标:在两个EDIT对话框中输入值,将结果写入第三个对话框中
//大概的思路:使用ADD按键来触发,所以要在这个函数体中写
//1,获取一个控件的值。使用GetWindowText(..),
//2,将获取的字符串中的值使用atoi转化为int,然后运算
//3,将运算完的值转化为字符串,使用SetWindowText(..)将这个值写进入控件中
int num1,num2,num3;
char ch1[10], ch2[10],ch3[10];
GetDlgItemText(IDC_EDIT1,ch1,10);
GetDlgItemText(IDC_EDIT2,ch2,10);
num1=atoi(ch1);
num2=atoi(ch2);
num3=num1+num2;
itoa(num3,ch3,10); //将num按十进制变为一个字符串
GetDlgItem(IDC_EDIT3)->SetWindowText(ch3);
可以使用与对话框关联的方法来访问对话框
//使用关联对话框中数据与一个变量之间的方法来访问对话框
//使用DoExchangeData()函数来讲这些变量与对话框关联,但是这个函数具有
//Never call this function directly. It is called by the UpdateData method.
//Call UpdateData to initialize a dialog box controls or retrieve data from a dialog box.
//使用UpdateData来初始化,UpdataDate(BOOL ture)
//具有Specifies a flag that indicates whether dialog box is being initialized (FALSE) or data is being retrieved (TRUE).
UpdateData(); //获取数据
m_num3=m_num1+m_num2;
UpdateData(false); //初始化数据
第三种方法:使用消息的方法来访问
int num1,num2,num3;
char ch1[10],ch2[10],ch3[10];
m_edit1.SendMessage(WM_GETTEXT,10,(LPARAM)ch1);
m_edit2.SendMessage(WM_GETTEXT,10,(LPARAM)ch2);
num1=atoi(ch1);
num2=atoi(ch2);
num3=num1+num2;
itoa(num3,ch3,10);
m_edit3.SendMessage(WM_SETTEXT,0,(LPARAM)ch3);
这里的m_edit1已经和对话框相关联了
第四种方法:
int num1,num2,num3;
char ch1[10],ch2[10],ch3[10];
SendDlgItemMessage(IDC_EDIT1,WM_GETTEXT,10,(LPARAM)ch1);
SendDlgItemMessage(IDC_EDIT2,WM_GETTEXT,10,(LPARAM)ch2);
num1=atoi(ch1);
num2=atoi(ch2);
num3=num1+num2;
itoa(num3,ch3,10);
SendDlgItemMessage(IDC_EDIT3,WM_SETTEXT,0,(LPARAM)ch3);