1、GetDlgItem(ID)->GetWindowText(); 2、GetDlgItemText(ID,CString s); 3、GetDlgItemInt(); 4、为控件添加值变量(value)或控件变量(control) 5、使用windows系统消息处理函数
1、GetDlgItem()->GetWindowText();
TCHAR str1[12]; CString s; GetDlgItem(IDC_EDIT1_)->GetWindowTextW(str1,12);//利用字符数组接收控件里的信息,参数二表示获取的最大字符数,控件里的值默认都是字符串 GetDlgItem(IDC_EDIT2)->GetWindowTextW(s);//利用CString 变量接收控件里的信息2、GetDlgItemText(ID,CString s);
CString s; TCHAR ch[12]; GetDlgItemText(IDC_EDIT2, s); GetDlgItemText(IDC_EDIT3, ch, 12);参数类型与用法1类似。
3、GetDlgItemInt();
int a, b; a = GetDlgItemInt(IDC_EDIT1_);//把控件里的值转换成int型再赋给a b = GetDlgItemInt(IDC_EDIT2);4、为控件添加值变量(value)或控件变量(control); 为控件添加值变量:
/*m_num1,m_num2,m_num3 分别表示三个控件的值变量*/ UpdateData(true);//true 表示把控件里的值传给所绑定的值变量 if (m_num1 < 0) { MessageBox(_T("请输入大于零的数!")); } m_num3 = m_num1 + m_num2; UpdateData(false);//false 表示把变量的值传回给对应的控件并显示使用值变量的时,必须要使用UpdateDate()方法完成变量与控件之间的值传递。
使用控件变量就直接调用控件变量的方法对控件进行操作。
int a, b, c; TCHAR ch1[12], ch2[12], ch3[12]; m_edit1.GetWindowTextW(ch1, 12);//获取控件里的值 m_edit2.GetWindowTextW(ch2, 12); a = _ttoi(ch1);//TCHAR 转 int b = _ttoi(ch2); c = a + b; _itot_s(c, ch3, 10);//int 转 TCHAR,第三个参数表示以几进制转换 m_edit3.SetWindowTextW(ch3);//设置控件里的值5、使用windows系统消息处理函数
SendMesage()函数,需在全局范围内使用(::) TCHAR ch1[12], ch2[12], ch3[12]; int a, b, c; ::SendMessage(GetDlgItem(IDC_EDIT1_)->m_hWnd, WM_GETTEXT, 12, (LPARAM)ch1);//WM_GETTEXT获取文本 //参数1表示句柄,参数2表示发送的消息命令,参数3表示接收的最大字符数,参数4表示接收值得变量 ::SendMessage(GetDlgItem(IDC_EDIT2)->m_hWnd, WM_GETTEXT, 12, (LPARAM)ch2); a = _ttoi(ch1); b = _ttoi(ch2); c = a + b; _itot_s(c, ch3, 10); ::SendMessage(GetDlgItem(IDC_EDIT3)->m_hWnd, WM_SETTEXT, 12, (LPARAM)ch3);//WM_SETTEXT设置文本 SendDlgItemMessage()函数,参数类型与SendMessage()一致,用法上不需要再用全局运算符(::)。MFC入门小白总结,有总结的不充分和不足的地方,不喜勿喷!