进程间通信简单实现之SendMessage/PostMessage
2015-04-18 20:21
417 查看
接收消息方:
发送消息方:
备注:
1、afx_msg 其实没有任何作用,去掉编译也是可以通过的,加上的好处就是让代码更具有可读性(别人就知道了这个函数是响应消息的)
2、PostMessage与SendMessage的区别是:
PostMessage是在本进程的时间片内,发送消息并直接执行远程进程的响应函
SendMessage是将消息发送给远程进程,待轮到远程进程的时间片,远程进程自己执行取消息,执行消息响应函数
3、用户自定义消息必须声明为上述形式,声明成 afx_msg void 函数名() 是不对的
#define WM_MYMESSAGE WM_USER + 100 //不用括号
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
BEGIN_MESSAGE_MAP(CMyWnd2, CWnd) ON_MESSAGE(WM_MYMESSAGE, OnMyMessage) END_MESSAGE_MAP()
LRESULT CMyWnd2::OnMyMessage(WPARAM wParam, LPARAM lParam) { // Handle message here. return 0; }
发送消息方:
int main() { HWND hwnd = FindWindow(NULL,"Name"); PostMessage(hwnd,WM_USER +100,NULL,NULL); //SendMessage return 0; }
备注:
1、afx_msg 其实没有任何作用,去掉编译也是可以通过的,加上的好处就是让代码更具有可读性(别人就知道了这个函数是响应消息的)
2、PostMessage与SendMessage的区别是:
PostMessage是在本进程的时间片内,发送消息并直接执行远程进程的响应函
SendMessage是将消息发送给远程进程,待轮到远程进程的时间片,远程进程自己执行取消息,执行消息响应函数
3、用户自定义消息必须声明为上述形式,声明成 afx_msg void 函数名() 是不对的
相关文章推荐
- c++ 写的linux下简单的实现 get post 请求
- Binder机制——AndroidStudio简单实现进程间通信
- 结合GET(),POST()实现一个简单、完整的服务器
- C++ 实现简单的POST练习
- 笔记_postMessage/sendMessage/getMessage/peekMessage
- Tomcat__Post实现简单登陆功能
- 创建一个简单的restful wcf, 并且用silverlight做为客户端实现get, post, put,delete
- Android客户端post方式连接web(servlet)服务器实现简单登录
- 用CHttpFile实现简单的GET/POST数据
- 用Python socket实现一个简单的http服务器(post 与get 的区别)、CGIHTTPServer 简单应用
- android http-post方法简单实现
- android-async-http开源项目的GET方式或POST方式实现登陆案例简单Demo
- Netty之实现自定义简单的编解码器二(MessageToMessageEncoder<CharSequence>和MessageToMessageDecoder<ByteBuf>)
- 用CHttpFile实现简单的GET/POST数据
- js实现跨域(jsonp, iframe+window.name, iframe+window.domain, iframe+window.postMessage)
- MFC使用SendMessage()发送自定义消息实现进程间通信
- 写了一个简单的NodeJS实现的进程间通信的例子
- ajax的简单使用——get&post的实现(2)
- angularjs简单实现$http.post(CORS)跨域及$http.post传参方式模拟jQuery.post
- 进程间通信之“内存共享”的简单实现