MFC C++ 如何发送Postmessage
MFC C++ 如何发送Postmessage
案例1
一、发起postmessage
void CValidEdit::OnTimer(UINT_PTR timer){if (timer == TM_BALLOONTIP){_bIsShowingTip = false;KillTimer(TM_BALLOONTIP);Edit_HideBalloonTip(m_hWnd);CWnd *pParent = GetParent();if (pParent != NULL){CDialog *pDlg = dynamic_cast<CDialog*>(pParent);while (pDlg == NULL){pParent = pParent->GetParent();if (pParent != NULL)pDlg = dynamic_cast<CDialog*>(pParent);}if (pDlg != NULL)pDlg->PostMessage(KILL_TM_BALLOONTIP);}}}
这个方法 会通过GetParent()找到控件的所属对话框
CWnd *pParent = GetParent();
通过递归,找到CDialog对话框:
CDialog *pDlg = dynamic_cast<CDialog*>(pParent);while (pDlg == NULL){pParent = pParent->GetParent();if (pParent != NULL)pDlg = dynamic_cast<CDialog*>(pParent);}
最后通过PostMessage向所属对话框发消息
pDlg->PostMessage(KILL_TM_BALLOONTIP);
二、接受message
BEGIN_MESSAGE_MAP(CDlgDrawJKSecionEx, CCommonDialogEx)ON_WM_VSCROLL()ON_MESSAGE(KEY_DOWN_CTRL_Q, &CDlgDrawJKSecionEx::OnKeyDownSpaceQ)ON_MESSAGE(KEY_DOWN_CTRL_W, &CDlgDrawJKSecionEx::OnKeyDownSpaceW)ON_MESSAGE(KEY_DOWN_CTRL_E, &CDlgDrawJKSecionEx::OnKeyDownSpaceE)ON_MESSAGE(KEY_DOWN_CTRL_R, &CDlgDrawJKSecionEx::OnKeyDownSpaceR)ON_MESSAGE(WM_NUM_CHANGE, &CDlgDrawJKSecionEx::OnListNumChange)ON_MESSAGE(KEY_DOWN_CTRL, &CDlgDrawJKSecionEx::OnKeyDownCtrl)ON_MESSAGE(KEY_UP_CTRL, &CDlgDrawJKSecionEx::OnKeyUpCtrl)ON_MESSAGE(KILL_TM_BALLOONTIP, &CDlgDrawJKSecionEx::OnUpdateDlg)
END_MESSAGE_MAP()
在接收对话框的message上面,添加ON_MESSAGE
ON_MESSAGE(KILL_TM_BALLOONTIP, &CDlgDrawJKSecionEx::OnUpdateDlg)
在这个对话框中,就可以实现这个消息了
案例2
子窗口向窗口发送postmessage
一、子窗口发送消息
二、窗口接收消息
三、它们之间是所属关系
MFC C++ 如何发送Postmessage相关推荐
- MFC::error C2065: “IDD_DIALOG1”: 未声明的标识符 MFC线程中发送与处理自定义消息
添加资源头文件就行. #include "Resource.h" MFC线程中发送消息 1.先写义好接收 #define WM_SET_FOCUS WM_USER+100 //自定 ...
- MFC Windows 消息发送顺序
WM_CREATE 和 WM_INITDIALOG 什么时候发送的? 小结: WM_CREATE是所有窗口都能响应的消息,表明本窗口已经创建完毕.可以安全的使用这个窗口了,例如在它上面画控件等等.这个 ...
- MFC的sendmessage和postmessage 以及sendmessagetimeout
PostMessage只负责将消息放到消息队列中,不确定何时及是否处理,相当于异步操作,执行后马上返回 SendMessage要等到受到消息处理的返回码(DWord类型)后才继续,相当于同步操作,一直 ...
- Visual C++ MFC/ATL开发-高级篇(一)
在VC++6.0中用MFC进行COM编程首先应当明确,MFC中是通过嵌套类而不是多重继承来实现COM接口的,通过接口映射机制将接口和实现该接口的嵌套类关联起来:MFC中提供一套简明的宏来实现嵌套类的定 ...
- GTK+ VS MFC
为什么80%的码农都做不了架构师?>>> 今天看到一篇关于GTK+和MFC对比的文章,学GTK+编程的来看看 MFC已经江河日下,日渐式微,而GTK+可谓欣欣向荣,如日中天.这 ...
- MFC和GTK的区别
关键技术 http://blog.csdn.net/master_max/article/details/1540204 MFC和GTK的区别?? 1. 两者都是基于面向对象设计的.尽管MFC是用C+ ...
- 窗口发送消息参数详解
窗口发送消息参数详解 // 窗口.发送消息 函数功能: 将指定的消息发送到一个窗口,同win32 api 里面的SendMessage等同的效果 中文函数原型: 发送消息(hwnd,msg ...
- Windows 窗口发送消息参数详解
窗口发送消息参数详解 // 窗口.发送消息 函数功能: 将指定的消息发送到一个窗口,同win32 api 里面的SendMessage等同的效果中文函数原型: 发送消息(hwnd,msg,wparam ...
- 应用MFC开发高级应用程序
目次:一.使用C/C++及VC与VB之比较 二.MFC编程综述 三.使用单文档-多视结构 四.使用DDE服务 五.使用3D控制 六.使用自定义消息 七.使用不带文挡-视结构的MFC应用 八 ...
最新文章
- POJ 3237 Tree (树链剖分)
- aix source 命令
- e7xue.php漏洞_简要分析最近的dedecms通杀漏洞以及漏洞补丁的绕过
- android studio设置Tab为四空格缩进
- PLsql的汉化工具
- ASP.NET Core Razor页面禁用防伪令牌验证
- C++:02---命名空间
- [bzoj1059]矩阵游戏
- Sourcetail 一款代码编辑神器,让看源码如丝般顺滑
- HTML5 FileReader API 测试(一)
- HTML+CSS+JS实现 ❤️照相机快门图片动画特效❤️
- 为何Transformer在计算机视觉中如此受欢迎
- android.intent.action.view 融云,Android 融云SDK集成单聊
- Spring系统学习--20180613:Spring的AOP开发说明
- GPUImage使用之stillCamera多滤镜
- Maven构建springBoot Demo案例
- java 泛型接口_Java中泛型接口
- oracle windows系统下卸载oracle 11g和安装oracle 11g
- SpringBoot项目中快速集成腾讯云短信服务SDK实现手机验证码功能
- x64技术之SSDT_Hook