自定义消息的发送和接收的方法
自定义消息有两种
一种是类似如下定义的非注册消息A
define WM_COUNT_MSG WM_USER+100
一种是类似如下定义的注册消息B
define WM_VIEW_UPDATE _T(“VIEW_UPDATE”)
static UINT WM_VIEW_UPDATE_MSG = RegisterWindowMessage(WM_VIEW_UPDATE);
对于A的使用方法是在.h文件中添加A的定义,同时增加如下语句
afx_msg LRESULT OnCountMsg(WPARAM,LPARAM);
在.cpp文件中增加以下语句
BEGIN_MESSAGE_MAP(CObserModelTestDlg, CDialogEx)
ON_MESSAGE(WM_COUNT_MSG,&CObserModelTestDlg::OnCountMsg)
END_MESSAGE_MAP()
LRESULT CObserModelTestDlg::OnCountMsg(WPARAM wParam,LPARAM lParam)
{
return 1;
}
对于B的使用方法是在.h文件中添加B的定义,同时增加如下语句
afx_msg LRESULT OnCountMsg(WPARAM,LPARAM);
在.cpp文件中增加以下语句
BEGIN_MESSAGE_MAP(CObserModelTestDlg, CDialogEx)
ON_REGISTERED_MESSAGE(WS_VIEW_UPDATE_MSG,&CObserModelTestDlg::OnCountMsg)
END_MESSAGE_MAP()
LRESULT CObserModelTestDlg::OnCountMsg(WPARAM wParam,LPARAM lParam)
{
return 1;
}
发送消息
无论是非注册消息A还是注册消息B,在发送消息的程序中,都要将A或B的定义重新写一遍。
1)向指定窗口发送消息的方法
HWND note = ::FindWindowW(NULL,L”DialogRecive”);
if (note != NULL)
{
::SendMessage(note, WM_COUNT_MSG,0,0);
}
2)广播消息
::PostMessageA(HWND_BROADCAST,WM_VIEW_UPDATE_MSG,0,0);
注意广播消息不会被子窗口接收到。例如在一个基于对话框的应用程序中。如果想让主对话框和其他非模态对话框都接收到广播消息。如果在主对话框的初始化函数中使用以下语句
BOOL CObserModelTestDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
m_msg_observer = std::shared_ptr(new UsMecha4DObserver());
m_msg_observer->Create(IDD_OBSERVEDlg);
m_msg_observer->ShowWindow(SW_SHOW);
}
那么m_msg_observer是接收不到广播消息的。
要想让CObserModelTestDlg和m_msg_observer都接收到广播消息。需要在应用程序
的InitInstance()中增加类似的语句
{
RESIVETESTDLG *DLG = new RESIVETESTDLG();
DLG->Create(IDD_DIALOG2);
DLG->ShowWindow(SW_SHOW);
CObserModelTestDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
}
自定义消息的发送和接收的方法相关推荐
- DELPHI中自定义消息的发送和接收
DELPHI中的消息处理机制 Delphi是Borland公司提供的一种全新的WINDOWS编程开发工具.由于它采用了具有弹性的和可重用的面向对象Pascal(object-orientedpasca ...
- ActiveMQ的消息的(含附件)发送和接收使用
首先介绍一下ActiveMQ的版本:apache-activemq-5.10.2 启动MQ:activemq.bat 下面来编写MQ的发送类: 里面的发送ip和模式名称可以根据具体的实际情况填写. S ...
- IBM MQ 搭建测试环境并测试消息的发送和接收
一,说明 MQ基于Linux环境的安装比较简单,读者可以去网上自行搜索. 本文主要在于MQ队列管理器相关的部分. OS Version: Red Hat Enterprise Linux Server ...
- python接收邮件内容启动程序_Python实现发送与接收邮件的方法详解
本文实例讲述了Python实现发送与接收邮件的方法.分享给大家供大家参考,具体如下: 一.发送邮件 这里实现给网易邮箱发送邮件功能: import smtplib import tkinter cla ...
- python接收邮件g_Python接收Gmail新邮件并发送到gtalk的方法
本文实例讲述了Python接收Gmail新邮件并发送到gtalk的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python # -*- coding: utf-8 - ...
- python接收最新邮件_Python接收Gmail新邮件并发送到gtalk的方法
本文实例讲述了Python接收Gmail新邮件并发送到gtalk的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python # -*- coding: utf-8 - ...
- pop3服务器协议初始化失败,邮件的发送和接收故障处理的几点方法
成天和邮件打交道,难免遇到邮件的发送和接收问题.通常遇到的问题有:网络问题,对方服务器的问题,DNS解析的问题,对方拒绝接收你的邮件等.可以通过以下一些简单的方法,诊断问题的所在: 1)分析NOT D ...
- 计算机网络没有接收数据,本地连接有发送无接收数据的解决方法
"本地连接"有发送无接收数据的解决方法 发布时间:2013-07-23 23:34:03 作者:佚名 我要评论 在日常的网络维护中,常常出现"本地连接" ...
- Android Java使用JavaMail API发送和接收邮件的代码示例
JavaMail是Oracle甲骨文开发的Java邮件类API,支持多种邮件协议,这里我们就来看一下Java使用JavaMail API发送和接收邮件的代码示例 使用Javamail发送邮件,必需的j ...
最新文章
- fseek获取大于4G的文件大小的问题
- MTP 多媒体传输协议
- python线程中再起线程_多线程 - Python中的线程化
- tensorflow中tf.random_normal和tf.truncated_normal的区别
- [基础题] 5.(*)按如下要求编写Java应用程序:(1)编写一个用于表示战斗能力的接口Fightable,
- Android 编程下设置 Activity 切换动画
- PowerCenter基础心得
- oracle 创建表空间_Oracle 创建和管理表
- Android使用Glide框架加载网络图片(解决无报错图片不显示问题)
- 玩转 Java 动态编译,太秀了~!
- How to add libraries to “External Libraries” in WebStorm/PhpStorm/Intellij
- 第3章 数据库操作SQL语言---数据库原理及应用
- STM8S103FP6芯片PB_4/PB_5输出问题
- 【Go】blockchain-tutorial 区块链技术教程
- 2014年9月至2015年1月
- 如何防止SP利用欠费进行套利
- 基于POA搭建ETH联盟链
- win10安装,ERROR:0x8007025D问题解决
- obsidian和zotero联动
- SRT协议的校园局域网电视直播应用(校园电视台)