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相关推荐

  1. MFC::error C2065: “IDD_DIALOG1”: 未声明的标识符 MFC线程中发送与处理自定义消息

    添加资源头文件就行. #include "Resource.h" MFC线程中发送消息 1.先写义好接收 #define WM_SET_FOCUS WM_USER+100 //自定 ...

  2. MFC Windows 消息发送顺序

    WM_CREATE 和 WM_INITDIALOG 什么时候发送的? 小结: WM_CREATE是所有窗口都能响应的消息,表明本窗口已经创建完毕.可以安全的使用这个窗口了,例如在它上面画控件等等.这个 ...

  3. MFC的sendmessage和postmessage 以及sendmessagetimeout

    PostMessage只负责将消息放到消息队列中,不确定何时及是否处理,相当于异步操作,执行后马上返回 SendMessage要等到受到消息处理的返回码(DWord类型)后才继续,相当于同步操作,一直 ...

  4. Visual C++ MFC/ATL开发-高级篇(一)

    在VC++6.0中用MFC进行COM编程首先应当明确,MFC中是通过嵌套类而不是多重继承来实现COM接口的,通过接口映射机制将接口和实现该接口的嵌套类关联起来:MFC中提供一套简明的宏来实现嵌套类的定 ...

  5. GTK+ VS MFC

    为什么80%的码农都做不了架构师?>>>    今天看到一篇关于GTK+和MFC对比的文章,学GTK+编程的来看看 MFC已经江河日下,日渐式微,而GTK+可谓欣欣向荣,如日中天.这 ...

  6. MFC和GTK的区别

    关键技术 http://blog.csdn.net/master_max/article/details/1540204 MFC和GTK的区别?? 1. 两者都是基于面向对象设计的.尽管MFC是用C+ ...

  7. 窗口发送消息参数详解

    窗口发送消息参数详解 //    窗口.发送消息    函数功能: 将指定的消息发送到一个窗口,同win32 api 里面的SendMessage等同的效果 中文函数原型: 发送消息(hwnd,msg ...

  8. Windows 窗口发送消息参数详解

    窗口发送消息参数详解 // 窗口.发送消息 函数功能: 将指定的消息发送到一个窗口,同win32 api 里面的SendMessage等同的效果中文函数原型: 发送消息(hwnd,msg,wparam ...

  9. 应用MFC开发高级应用程序

    目次:一.使用C/C++及VC与VB之比较   二.MFC编程综述  三.使用单文档-多视结构 四.使用DDE服务  五.使用3D控制  六.使用自定义消息 七.使用不带文挡-视结构的MFC应用  八 ...

最新文章

  1. POJ 3237 Tree (树链剖分)
  2. aix source 命令
  3. e7xue.php漏洞_简要分析最近的dedecms通杀漏洞以及漏洞补丁的绕过
  4. android studio设置Tab为四空格缩进
  5. PLsql的汉化工具
  6. ASP.NET Core Razor页面禁用防伪令牌验证
  7. C++:02---命名空间
  8. [bzoj1059]矩阵游戏
  9. Sourcetail 一款代码编辑神器,让看源码如丝般顺滑
  10. HTML5 FileReader API 测试(一)
  11. HTML+CSS+JS实现 ❤️照相机快门图片动画特效❤️
  12. 为何Transformer在计算机视觉中如此受欢迎
  13. android.intent.action.view 融云,Android 融云SDK集成单聊
  14. Spring系统学习--20180613:Spring的AOP开发说明
  15. GPUImage使用之stillCamera多滤镜
  16. Maven构建springBoot Demo案例
  17. java 泛型接口_Java中泛型接口
  18. oracle windows系统下卸载oracle 11g和安装oracle 11g
  19. SpringBoot项目中快速集成腾讯云短信服务SDK实现手机验证码功能
  20. x64技术之SSDT_Hook

热门文章

  1. 某网站安全检测之数据库手工注入
  2. model cannot cast to be model问题处理记录
  3. 不能设置断点的检查步骤
  4. Algorand以2.4美元结束首轮拍卖,为私募价48倍
  5. 计算机共享协议书,联合体资质共享协议书.doc
  6. CockRoachDB配置跨域集群
  7. 百度 阿里 腾讯 BAT笔试题目
  8. 地铁调色,打造金属质感
  9. 从零开始SpringCloud Alibaba实战(58)——vim常用快捷键
  10. 计算几何之 点在直线上的投影 代码模板与证明