注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

简单代码

寻找代码的灵魂

 
 
 

日志

 
 
关于我

对于本博客内所有原创文章和代码的引用必须标明“来源:http://simplesource.blog.163.com/”。如需应用于商业目的必须经本人同意,本人对所有原创文章和代码保留一切权利。 PS:需要部分程序源代码的请留下邮箱地址

网易考拉推荐

WM_COPYDATA还真有用  

2008-06-25 17:41:40|  分类: 技术文献 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

利用这个消息可以方便的实现进程间的简单通信,作为一般的应用是绝对够的。下面是使用的方法

一、取得目标进程的窗口句柄

在这里我的程序是子进程向父进程窗口发消息,所以我在父进程调用子进程的时候就把父进程窗口的句柄(HWND)作为命令行参数传递给了子进程,只要把这个HWND当作LONG数据类型来处理就行了,在下面的程序中shwnd字符串中存储了父进程的窗口句柄值。

二、填充结构体

COPYDATASTRUCT结构是WM_COPYDATA的参数,在这里可以指定对象的内存地址,对象的长度,data可以是子进程和父进程都认识的对象

三、发送

伪代码如下

    HWND hWnd;
    sscanf(shwnd, "%ld", &hWnd);
    COPYDATASTRUCT cp; 
    cp.dwData = 0;
    cp.cbData = length;
    cp.lpData = (void*)data;
    ::SendMessage(hWnd, WM_COPYDATA, NULL, (LPARAM)&cp);

四、父进程重载ON_WM_COPYDATA消息映射函数,可以在响应函数中收到COPYDATASTRUCT结构

  评论这张
 
阅读(4517)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018