MFC中edit控件中同一程序中对话框间的传值与显示方法
来源:互联网 发布:服装商品数据分析报表 编辑:程序博客网 时间:2024/05/04 04:01
我用实例来说,首先在VC6.0中建立一个基于对话框的项目。然后在这个作为接受显示的对话框窗口中设置两个一个Edit控件,把这个拥有Edit控件的对话框取名为EditDlg,然后在用PreTranslateMessage函数设置点击这个Edit控件的单击事件,这个事件响应打开另一个对话框SendToEdlg,在这个对话框中有一个Button控件,单击这个控件,对话框SendToEdlg关闭,EditDlg对话框中的Edit控件显示这个Button按钮上的信息。以下用代码来说明:
BOOL EditDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->hwnd == m_edit1.m_hWnd && pMsg->message == WM_LBUTTONDOWN)
{
UpdateData();
SendToEdlg dlg;
pDlg = &dlg; //pDlg是在EditDlg类里定义的SendToEdlg 指针
dlg.DoModal();//打开对话框SendToEdlg
m_edit1str = pDlg->m_str1c;//
m_edit1.SetWindowText(m_edit1str);
return TRUE; //这个返回,好像把控件消息屏蔽了,所以我只能在这返回之前处理消息响应, //但是没有,返回就不正确
}
return CDialog::PreTranslateMessage(pMsg);
}
m_edit1是EditDlg对话框中的Edit控件的CEdit类型变量,用它可直接关联到Edit控件从而操作函数。
m_edit1str 是Edit控件的CString变量。
这个是SendToEdlg对话框Button按钮的事件处理代码
voidSendToEdlg::OnButton1()
{
// TODO: Add your control notification handler code here
//pDlg->m_edit1str = m_str1c;//此方法是用全局指针实现
m_str1c = _T("1C");
CDialog::OnOK();
}
这样就实现了数据传递和对话框的数据显示,最主要的的是在PreTranslateMessage函数里拦截消息并实现消息的处理,简单方便。但是这种方法的缺点也是蛮大的,处理一两条消息还可以,大量的消息不行
EditDlg对话框
。
点击那个Edit控件出来的SendToEdlg对话框
点击那个1C按钮后,SendToEdlg对话框关闭,EditDlg对话框edit控件显示1C,
- MFC中edit控件中同一程序中对话框间的传值与显示方法
- 基于对话框的MFC应用程序的Edit控件中实时显示系统时间的方法:
- MFC中初始化Edit控件的值
- MFC中设置EDIT控件中光标显示在字符串末尾的方法
- MFC中Edit控件显示系统时间
- MFC中edit控件的使用
- MFC中edit控件的使用
- MFC中Edit控件的用法整理
- MFC对话框的picture控件中显示IplImage*格式图像
- MFC对话框中显示图片的四种方法
- MFC中使文档对话框最大化显示的方法
- MFC对话框中显示图片的四种方法
- MFC对话框中显示图片的四种方法
- MFC中Edit Control值的获取与赋值
- MFC中Edit Control值的获取与赋值
- MFC中Edit Control值的获取与赋值
- MFC在其他线程中刷新主对话框中EDIT等控件数据
- 设置、获得对话框中 编辑框控件 EDIT 的内容
- 彻底理解android中的回调机制
- MapReduce分布式计算框架
- 《数据结构与算法分析》引论:选择问题实现
- zzdd自留地
- 原生态纯JavaScript 100大技巧大收集---你值得拥有
- MFC中edit控件中同一程序中对话框间的传值与显示方法
- 改进的筛素数法
- Havok动画渲染Demo(使用Ogre)
- Android UI设计——Button控件
- Unity中的Attribute
- Google浏览器清除缓存快捷键
- Activity运行状态以及完全退出程序
- UICollectionView
- HTTP协议