MFC用PostMessage在窗体间传递消息
2016-04-07 11:02
609 查看
接收消息窗体,CMainFrame
1 首先在stdafx.h中定义消息:例如
定义消息处理函数。
消息处理函数为消息目标类的成员函数。首先应该在.h 文件中声明。这里以主窗口类为例,主窗口类名 CMainFrame,则首先在CMainFrame.h声明消息处理函数。
public:
afx_msg LRESULT OnCurTaskChanged(WPARAM wParam, LPARAM lParam);
3.在CMainFrame.cpp中实现消息处理函数
4.在CMainFrame.cpp中映射消息ID和消息处理函数
5、在CMainFrame中创建非模态对话框,通过按钮Click::OnDebug_test
在对话框Cam_TestDlg中发送消息
1 首先在stdafx.h中定义消息:例如
#indefine WM_MYMESSAGE (WM_USER+100) WM_MYMESSAGE是定义的宏:
定义消息处理函数。
消息处理函数为消息目标类的成员函数。首先应该在.h 文件中声明。这里以主窗口类为例,主窗口类名 CMainFrame,则首先在CMainFrame.h声明消息处理函数。
public:
afx_msg LRESULT OnCurTaskChanged(WPARAM wParam, LPARAM lParam);
3.在CMainFrame.cpp中实现消息处理函数
LPESULT CMainDialog::OnCurTaskChanged(WPARAM wParam, LPARAM lParam) { // TODO: 处理用户自定义消息 m_bIsOpen = false; return 0; }
4.在CMainFrame.cpp中映射消息ID和消息处理函数
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) //{{AFX_MSG_MAP(CMainFrame) ON_WM_CREATE() ON_WM_TIMER() ON_MESSAGE(WM_MY_MESSAGE, OnCurTaskChanged) //}}AFX_MSG_MAP END_MESSAGE_MAP()
5、在CMainFrame中创建非模态对话框,通过按钮Click::OnDebug_test
void CMainFrame::OnDebug_test() { m_bIsOpen = false; Cam_TestDlg *dlg = new Cam_TestDlg(); if (!m_bIsOpen) { dlg->Create(IDD_DIALOG_TEST, GetDesktopWindow()); dlg->ShowWindow(SW_SHOW); m_bIsOpen = !m_bIsOpen; m_bIsOpen = true; } //TODO: Add your command handler code here }
在对话框Cam_TestDlg中发送消息
CMainFrame *pFrame; pFrame = (CMainFrame*)AfxGetMainWnd(); PostMessageW(pFrame->m_hWnd, WM_MY_MESSAGE, NULL , NULL);
相关文章推荐
- PDM与数据库
- 4.4.1 single_server_main函数:single_server执行模板“主函数”
- C++第3次上机实验
- 132.线段覆盖 2
- 王立平--EditPlus激活码
- CCF系列之Z字形扫描(201412-2)
- node基础再现--module.exports 和exports
- 学习笔记(复利计算器更新至1.0.0版)
- CodeForces 616A Comparing Two Long Integers【字符串】
- PS教程!教你快速简单打造一个元气满满的彩虹糖果字效
- iOS9出来了,http不管用
- zz 【转载用于学习】IOS开发技巧--Git的使用
- 欢迎使用CSDN-markdown编辑器
- Python Decorator 的来龙
- springmvc 页面和后台传值乱码问题
- CSS 的命名和书写
- android多媒体开发笔记
- gitignore忽略规则
- c++实验3-个人所得税计算器
- 深度XP完美精简版 (适合低配置电脑)——迅雷