欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

MFC对话框控件访问的七种方式

发布时间:2025/3/21 编程问答 59 豆豆
生活随笔 收集整理的这篇文章主要介绍了 MFC对话框控件访问的七种方式 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

void CTestDlg::OnButtonAdd() {// TODO: Add your control notification handler code here//动态创建按钮 /* if ( FALSE == m_bIsCreate ) // 亦可以通过静态变量 static BOOL bIsCreate = FALSE;{m_btn.Create("Lee", BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD, CRect(0,0,100,65), this, 111);// m_btn.ShowWindow(SW_NORMAL);//若上句没有WS_VISIBLE,就加上showWindowm_bIsCreate = TRUE;}else{m_btn.DestroyWindow();m_bIsCreate = FALSE;} */ /* //最简单的动态创建按钮if (!m_btn.m_hWnd) //窗口句柄不为空{m_btn.Create("Lee", BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD, CRect(0,0,100,65), this, 111);}else{m_btn.DestroyWindow(); // 会自动将 m_hWnd = NULL} *///实现 点击Add按钮,将 编辑框1的数 + 编辑框2 的数 放到编辑框3中 /* int num1, num2, num3;char ch1[10], ch2[10], ch3[10];GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10); //将编辑框的文本存到ch1中,最大10个字符GetDlgItem(IDC_EDIT2)->GetWindowText(ch2,10);num1 = atoi(ch1); // 将字符串转换为整型num2 = atoi(ch2);num3 = num1 + num2;itoa(num3, ch3, 10); // 将整数num3 转换到ch3中,以十进制的方式GetDlgItem(IDC_EDIT3)->SetWindowText(ch3); // 将ch3字符数值,存到编辑框3中 */ /* //也可以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);SetDlgItemText(IDC_EDIT3, ch3); */ /* //还可以int num1, num2, num3;num1 = GetDlgItemInt(IDC_EDIT1); // 直接获得编辑框中的数值num2 = GetDlgItemInt(IDC_EDIT2);num3 = num1 + num2;SetDlgItemInt(IDC_EDIT3, num3); */ /* //最简单的一种,用classwizard 关联 控件与成员变量(以值)UpdateData();m_num3 = m_num2 + m_num1;UpdateData(FALSE); */ /* //第五种方式 用classwizard 关联 控件与成员变量(以控件)。与第一种相似int num1, num2, num3;char ch1[10], ch2[10], ch3[10];m_edit1.GetWindowText(ch1, 10);m_edit2.GetWindowText(ch2, 10);num1 = atoi(ch1); // 将字符串转换为整型num2 = atoi(ch2);num3 = num1 + num2;itoa(num3, ch3, 10);m_edit3.SetWindowText(ch3); */ /* //第六种方式,发送消息int num1, num2, num3;char ch1[10], ch2[10], ch3[10];//::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd, WM_GETTEXT, 10, (LPARAM)ch1);//::SendMessage(m_edit1.m_hWnd, WM_GETTEXT, 10, (LPARAM)ch1);//GetDlgItem(IDC_EDIT1)->SendMessage(WM_GETTEXT, 10, (LPARAM)ch1);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, 10, (LPARAM)ch3); *///第七种方式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, 10, (LPARAM)ch3);SendDlgItemMessage(IDC_EDIT3, EM_SETSEL, 0, -1); //复选所有的文本//GetDlgItem(IDC_EDIT3)->SetFocus(); //将焦点聚到edit3. 或者 m_edit3.SetFocus(); }

  

转载于:https://www.cnblogs.com/htj10/p/9346411.html

《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的MFC对话框控件访问的七种方式的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。