文档章节

PostMessage发送字符串和结构体

无奈的初弦
 无奈的初弦
发布于 2013/10/17 22:13
字数 200
阅读 4450
收藏 2

1.首先定义消息变量

#define WM_POST_MSG WM_USER + 2

2.增加消息处理函数

afx_msg LRESULT UpdateStatic(WPARAM wParam, LPARAM lParam);

3.增加消息映射

ON_MESSAGE(WM_POST_MSG,UpdateStatic)

当调用PostMessage函数时如下

CString  *msg = new CString("this is msg");
::PostMessage(m_hWnd,WM_POST_MSG,0,(LPARAM)msg);

关键在这个地方,为什么要new一个对象呢,先看接受消息函数怎么样处理的

LRESULT CPostMessageStringDlg::UpdateStatic(WPARAM wParam, LPARAM lParam)
{
	CString * temp = (CString *)lParam;
	MessageBox(*temp);
	delete temp;
	return 0L;
}

直接获得先前new对象的地址,因为在先前new的对象没有释放,还在堆中,所以处理函数能够通过参数传递过来的指针找到对象的位置,从而获得这个对象, 最后别忘了delete掉这个对象 。结构体也是如此。


© 著作权归作者所有

共有 人打赏支持
无奈的初弦
粉丝 2
博文 25
码字总数 8623
作品 0
海淀
程序员
WINDOWS消息机制(三)---系统消息队列,线程消息队列

在前文中我们讲到,鼠标或者键盘事件产生的消息会送到操作系统的消息队列中,再从系统队列送到各线程对应的消息队列。本文主要讲述的就是系统队列以及线程队列。 1. 系统队列 当操作系统启动...

西昆仑
2012/07/02
0
0
使用postMessage实现跨窗口消息传递

检测浏览器支持 不同版本的浏览器对postMessage的支持可能不同,因此使用前需要检测。在chrome浏览器中的一种比较简单的方法就是直接在开发者工具中输入window.postMessage,如果结果如下,说...

尼阿卡
2016/04/21
77
0
进程通信之一 使用WM_COPYDATA C++及C#实现

进程间通信最简单的方式就是发送WM_COPYDATA消息。本文提供C++及C#程序相互通信的二种实现方式。这样消息的接收端可以用C++实现,发送端可以用C++或C#实现。 发送WM_COPYDATA消息: SendMess...

长平狐
2012/12/10
182
0
进程通信之一 使用WM_COPYDATA C++及C#实现

进程间通信最简单的方式就是发送WM_COPYDATA消息。本文提供C++及C#程序相互通信的二种实现方式。这样消息的接收端可以用C++实现,发送端可以用C++或C#实现。 发送WM_COPYDATA消息: SendMess...

彭博
2012/04/12
692
0
HTML5 Messaging

HTML5 的Message API能够让HTML5页面之间传递消息,甚至这些页面可以不在同一样域名下。 发送消息 为了让消息能从一个页面发送到另一个页面,主动发送消息的页面必须拥有另一个页面的窗口引用...

junwong
2012/09/03
4.2K
8

没有更多内容

加载失败,请刷新页面

加载更多

gson1.7.1线程并发导致空指针问题

java.lang.NullPointerExceptionat com.google.gson.FieldAttributes.getAnnotationFromArray(FieldAttributes.java:231)at com.google.gson.FieldAttributes.getAnnotation(FieldAttribut......

东风125
45分钟前
3
0
以太坊RPC接口使用

以太坊RPC接口文档: https://github.com/ethereum/wiki/wiki/JSON-RPC#web3_clientversion 使用方式: 比如我要调用某个合约的balanceOf(address _owner)方法。 因为没有改变合约的状态,所以...

王坤charlie
今天
2
0
C#下的一个好用的日历库(sxtwl_cpp),支持农历转公历,和公历转农历等功能

sxtwl_cpp是寿星天文历的C++版本实现。支持多种语言的绑定 代码首页 懒人包 懒人包使用方法 1、右链工程中的引用-》添加引用-》浏览-》选中dotnet目录下的sxtwl.net.dll 2、生成解决方案-》找...

元谷
今天
3
0
C++基础知识

链接:https://zhuanlan.zhihu.com/p/38399566 本文主要提一下以下三个区别: 引用必须初始化,而指针可以不初始化。 我们在定义一个引用的时候必须为其指定一个初始值,但是指针却不需要。 ...

悲催的古灵武士
今天
1
0
Oracle备份脚本,保留10天数据

@echo off echo 删除10天前的备分文件和日志forfiles /p "D:\oracleback\backfile" /m *.dmp /d -10 /c "cmd /c del @path" forfiles /p "D:\oracleback\backfile" /m *.log /d -10......

lyle_luo
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部