大家好,欢迎来到IT知识分享网。
界面绘制
编辑框ID:IDC_EDIT_A、IDC_EDIT_B、IDC_EDIT_C
加法按钮ID:IDC_BUTTON_ADD1~7
方法1:GetDlgItem()->GetWindowTextW()
const int N = 20; void CDemoDlg::OnBnClickedButtonAdd1() { TCHAR str1[N], str2[N], str3[N]; GetDlgItem(IDC_EDIT_A)->GetWindowTextW(str1, N); GetDlgItem(IDC_EDIT_B)->GetWindowTextW(str2, N); int a = _ttoi(str1); int b = _ttoi(str2); int c = a + b; _itow_s(c, str3, 10); GetDlgItem(IDC_EDIT_C)->SetWindowTextW(str3); }
方法2:GetDlgItemText()
void CDemoDlg::OnBnClickedButtonAdd2() { TCHAR str1[N], str2[N], str3[N]; GetDlgItemText(IDC_EDIT_A, str1, N); GetDlgItemText(IDC_EDIT_B, str2, N); int a = _ttoi(str1); int b = _ttoi(str2); int c = a + b; _itow_s(c, str3, 10); SetDlgItemText(IDC_EDIT_C, str3); }
TCHAR转CString:
TCHAR chs[N] = _T("Hello"); CString str; str.Format(_T("%s"), chs); OutputDebugString(str);
TCHAR*转CString:
CString str1, str2; GetDlgItemText(IDC_EDIT_A, str1); GetDlgItemText(IDC_EDIT_B, str2); TCHAR* chs1 = new TCHAR[N]; TCHAR* chs2 = new TCHAR[N]; TCHAR chs3[N]; chs1 = str1.GetBuffer(str1.GetLength()); chs2 = str2.GetBuffer(str2.GetLength()); int a = _ttoi(chs1); int b = _ttoi(chs2); int c = a + b; _itow_s(c, chs3, 10); SetDlgItemText(IDC_EDIT_C, chs3); str1.ReleaseBuffer(); str2.ReleaseBuffer();
方法3:GetDlgItemInt()
int a = GetDlgItemInt(IDC_EDIT_A); int b = GetDlgItemInt(IDC_EDIT_B); int c = a + b; SetDlgItemInt(IDC_EDIT_C, c);
方法4:关联数值类型变量
MFC框架为用户提供了在对话框控件和数据变量间交换数据的DDX/DDV(数据交换/数据验证)机制。
DDX将数据成员变量和控件相连接,使得数据访问更加方便。
DDV用于数据校验,例如校验成员变量数值范围,并发出相应的警告。
UpdateData()函数接收一个BOOL类型参数,TRUE表示将控件中的数据传输到变量中,FALSE表示将变量中的数据传输到控件上。
UpdateData()并不直接完成DDX/DDV机制相关操作,而是通过调用一个DoDataExchange函数实现。
给编辑框IDC_EDIT_A关联值类型变量:选中编辑框-鼠标右键-添加变量
Dlg.h:
Dlg.cpp:
默认初始值为0。
设置数值范围:
同理,给另外两个编辑框关联int类型变量。
UpdateData(TRUE); m_edit_c_value = m_edit_a_value + m_edit_b_value; UpdateData(FALSE);
方法5:关联控件类型变量
void CDemoDlg::OnBnClickedButtonAdd5() { CString str1, str2; m_edit_a_control.GetWindowTextW(str1); m_edit_b_control.GetWindowTextW(str2); // OutputDebugString(str1 + str2); // Cstring 转 int int a = _ttoi(str1); int b = _ttoi(str2); int c = a + b; // int 转 CString CString str3; str3.Format(_T("%d"), c); m_edit_c_control.SetWindowTextW(str3); }
方法6:SendMessage()
void CDemoDlg::OnBnClickedButtonAdd6() { TCHAR chs1[N], chs2[N], chs3[N]; ::SendMessage(GetDlgItem(IDC_EDIT_A)->m_hWnd, WM_GETTEXT, N, (LPARAM)chs1); ::SendMessage(GetDlgItem(IDC_EDIT_B)->m_hWnd, WM_GETTEXT, N, (LPARAM)chs2); int a = _ttoi(chs1); int b = _ttoi(chs2); int c = a + b; _itow_s(c, chs3, 10); ::SendMessage(GetDlgItem(IDC_EDIT_C)->m_hWnd, WM_SETTEXT, 0, (LPARAM)chs3); }
方法7:SendDlgItemMessage()
void CDemoDlg::OnBnClickedButton7() { TCHAR chs1[N], chs2[N], chs3[N]; SendDlgItemMessage(IDC_EDIT_A, WM_GETTEXT, N, (LPARAM)chs1); SendDlgItemMessage(IDC_EDIT_B, WM_GETTEXT, N, (LPARAM)chs2); int a = _ttoi(chs1); int b = _ttoi(chs2); int c = a + b; _itow_s(c, chs3, 10); SendDlgItemMessage(IDC_EDIT_C, WM_SETTEXT, 0, (LPARAM)chs3); }
视频讲解
视频加载中…
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/58068.html