[Windows编程]父对话框与非模态子对话框的消息通信
来源:互联网 发布:linux常用浏览器 编辑:程序博客网 时间:2024/06/08 09:37
父对话框类:Cwhu_VoiceCardDlg
子对话框类:Cwhu_FaxDlg
第一节:父对话框向子对话框传递消息
Step1: 定义消息
在 父对话框类的头文件"whu_VoiceCardDlg.h"中#define WM_UPATEDATA WM_USER+20 ,父对话框发出WM_UPATEDATA 消息,子对话框接收并相应。
Step2:定义消息响应函数
在子对话框头文件Cwhu_FaxDlg.h中声明:
afx_msg LRESULT OnUpdateData(WPARAM wParam, LPARAM lParam);
然后在Cwhu_FaxDlg.cpp文件包含whu_VoiceCardDlg.h
(注意,是在Cwhu_FaxDlg.cpp中,不是在Cwhu_FaxDlg.h中,不然头文件重复编译,会报错syntax error : missing ';' before '*')
然后定义:
LRESULT Cwhu_FaxDlg::OnUpdateData(WPARAM wParam, LPARAM lParam)
{
int* m_FaxState = (int*)lParam;
whu_ShowFaxState(*m_FaxState);
UpdateData(FALSE);
return true;
}
然后在Cwhu_FaxDlg.cpp文件的BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间添加
ON_MESSAGE(WM_UPATEDATA, OnUpdateData),效果如下所示:
BEGIN_MESSAGE_MAP(Cwhu_FaxDlg, CDialogEx)
ON_MESSAGE(WM_UPATEDATA, OnUpdateData)
END_MESSAGE_MAP()
(备注:我发现我的Cwhu_FaxDlg.cpp中有两个BEGIN_MESSAGE_MAP和END_MESSAGE_MAP,只有将ON_MESSAGE(WM_UPATEDATA, OnUpdateData)放在定义很多消息函数的地方才可以,不然报错)
Step3:父对话框发出消息
int whu_FaxSendState = FAX_NOANSWER;
m_DlgFax->PostMessage(WM_UPATEDATA, 0, (LPARAM)&whu_FaxSendState);
其中,m_DlgFax为在"whu_VoiceCardDlg.h"定义的Cwhu_VoiceCardDlg的成员函数:Cwhu_FaxDlg *m_DlgFax;
第二节:子对话框向父对话框传递信息
方法一:使用父对话框的指针
m_DlgFax->whu_ParentDlg = this;
m_DlgFax->Create(IDD_FAX,this);
m_DlgFax->ShowWindow(SW_SHOW);
方法二:使用消息机制
- [Windows编程]父对话框与非模态子对话框的消息通信
- Windows消息的封装之:对话框与控件(二)
- Windows SDK 非模态对话框的消息处理
- Windows SDK 非模态对话框的消息处理
- Windows SDK 非模态对话框的消息处理
- 【VC编程】笔记4--windows的消息驱动机制和消息对话框
- 主对话框与非模态对话框之间的通信
- 对话框最小化消息 的发送与接收
- 对话框与控件的消息处理顺序
- windows编程---对话框
- 如何使对话框中接收到WM_CHAR消息(Windows编程)
- |对话框与对话框中发送消息实例|
- 消息对话框的使用
- 消息对话框的代码
- delphi的消息对话框
- delphi的消息对话框
- Java的消息对话框
- Windows多线程与对话框
- Makefile中指示符“include”、“-include”和“sinclude”的区别
- 水晶报表指定小数位数,去除多余的0
- property-ref
- POJ1386Play on Words-欧拉回路判定
- windows 中ssh无法和虚拟机中的linux通信 sqlite 交叉编译
- [Windows编程]父对话框与非模态子对话框的消息通信
- 安卓学习要点导视下集
- 错误代码中文查询GetLastError返回代码的含义
- UIViewController Class Reference
- Scorm DataModel实现
- 《cocos2d-x权威指南》中第十一章范例(喵星战争)移植到android出现的问题
- 【为你剖析笔记本的内部结构】
- poj 3255 求次大最短路
- AJAX在PHP中的简单使用