利用PostMessage触发其他窗口类自定义消息响应函数实现主窗口和子窗口数据交互
2014-08-21 10:34
330 查看
最近在MFC主对话框添加了tab控件,每个tab页用了一个子对话框,然后就涉及到了一个问题,当主对话框有数据需要显示在子对话框列表控件时,怎么实现?后来听技术大牛点拨,主对话框中PostMessage的参数和子对话框自定义消息响应函数绑定,然后PostMessage把消息抛出,当执行到主对话框的PostMessage时,就会触发子对话框的消息响应函数。废话少说,开始讲代码:以下代码都已经过测试,可直接使用~
1、首先在StdAfx.h中添加:#define WM_TEST WM_USER+101 //用户消息 用来绑定PostMessage和自定义的消息响应函数
2、在子对话框中添加消息响应函数,这个网上资料很多,这里简单说一下:
在头文件中添加:afx_msg LRESULT OnTest(WPARAM wParam,LPARAM lParam);
在cpp文件中添加:ON_MESSAGE(WM_TEST,OnTest)
添加具体函数:
LRESULT CPara2::OnTest(WPARAM wParam,LPARAM lParam)
{
MessageBox("Hello World");
}
3、在主对话框你需要响应的地方添加:
::PostMessage(para2.GetSafeHwnd(),WM_TEST,0,0);//para2是子对话框的类名,由于是不同窗口之间,所以获得句柄用GetSafeHwnd()函数
4、我的数据传递用的全局变量,如果想通过PostMessage传递,可以使用第3、4项。
至此,不同窗口之间数据传递、触发就完成了,如有更好的见解,欢迎分享补充~
1、首先在StdAfx.h中添加:#define WM_TEST WM_USER+101 //用户消息 用来绑定PostMessage和自定义的消息响应函数
2、在子对话框中添加消息响应函数,这个网上资料很多,这里简单说一下:
在头文件中添加:afx_msg LRESULT OnTest(WPARAM wParam,LPARAM lParam);
在cpp文件中添加:ON_MESSAGE(WM_TEST,OnTest)
添加具体函数:
LRESULT CPara2::OnTest(WPARAM wParam,LPARAM lParam)
{
MessageBox("Hello World");
}
3、在主对话框你需要响应的地方添加:
::PostMessage(para2.GetSafeHwnd(),WM_TEST,0,0);//para2是子对话框的类名,由于是不同窗口之间,所以获得句柄用GetSafeHwnd()函数
4、我的数据传递用的全局变量,如果想通过PostMessage传递,可以使用第3、4项。
至此,不同窗口之间数据传递、触发就完成了,如有更好的见解,欢迎分享补充~
相关文章推荐
- 利用回调函数实现DLL与Qt主程序的数据交互,进一步实现对Qt主程序中的信号触发
- 利用回调函数实现DLL与Qt主程序的数据交互,进一步实现对Qt主程序中的信号触发
- 父窗口和子窗口的数据交互
- C#+JS简单实现 定时轮询数据表 以及时弹出消息提示窗口
- 利用委托来实现关闭子窗口通知父窗口执行方法
- Android开发(11)-利用listview控件显示person表中的所有数据(并实现点击触发拨号程序)
- 自定义的窗口消息实现
- 利用C#实现标注式消息提示窗口
- 图形的绘制,如何使用自定义画笔(颜色,线宽,线形)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,如何使用字体对话框,在选项对话框中实现预览功能。实现选项对话框和窗口类中的数据交换。如何改变对话框和控件的背景色,如何改变控件的文本颜色,
- ASP.NET利用JQuery中的Aajax实现JSON数据后台交互
- C#实现Winform窗口间数据交互的三种方法介绍
- 利用C#实现标注式消息提示窗口
- Vc/MFC中自定义消息及其PostMessage触发使用
- 利用内存读写函数和自定义消息实现进程间通信
- VC 某窗口向其他窗口发送消息实现步骤
- Flex利用自定义事件使用弹出窗口为DataGrid添加新数据
- C#+JS简单实现 定时轮询数据表 以及时弹出消息提示窗口
- 利用反射和自定义特性实现基本数据存取操作自动获取
- Android自定义照相机实现(拍照、保存到SD卡,利用Bundle在Acitivity交换数据)
- C#+JS简单实现 定时轮询数据表 以及时弹出消息提示窗口(转)