【本文参考自网络,参考地址:https://blog.csdn.net/lsyyoyo/article/details/38726419】

1、在公共的头文件中添加一个宏定义: #define WM_TEST WM_USER+101 //用户消息 用来绑定PostMessage和自定义的消息响应函数

  //  这里101可以用其他数字替代,但是一般要大于100,如果小于100可能和系统函数冲突。

2、在子对话框中添加消息响应函数,这个网上资料很多,这里简单说一下:

在头文件中添加:afx_msg LRESULT OnTest(WPARAM wParam,LPARAM lParam);

在cpp文件中添加:ON_MESSAGE(WM_TEST,OnTest)

添加具体函数:

LRESULT CPara2::OnTest(WPARAM wParam,LPARAM lParam)
   {     MessageBox( "Hello World" );   }

3、在主对话框你需要响应的地方添加:

::PostMessage(para2.GetSafeHwnd(),WM_TEST,0,0);//para2是子对话框的类名,由于是不同窗口之间,所以获得句柄用GetSafeHwnd()函数

4、如果想通过PostMessage传递参数,可以使用wParam和lParam选项。

这种方法相对复杂,但是应用范围较广,可以学习一下。

下面对WPARAM和LPARAM参数之间的区别进行简单的解释。

WPARAM 和 LPARAM

  wParam和lParam 这两个是Win16系统遗留下来的产物,在Win16API中WndProc有两个参数:一个是WORD类型的16位整型变量;另一个是LONG类型的32位整型变量。

因此根据匈牙利命名法,16位的变量就被命名为wParam, 32位的变量就被命名为lParam。

  而到了Win32API中,原来的16位变量也被扩展为32位,因此此时wParam和lParam的大小完全相同。

  区别及习惯用法:

  MS在使用时两种参数分别代表不同的含义和内容,WPARAM常常代表一些控件的ID或者高位低位组合起来分别表示鼠标的位置,如果消息的发送者需要将某种结构的指针或者是某种类型的句柄时,习惯上用LPARAM来传递。除此之外,一般我们使用LPARAM传递地址,而WPARAM传递其他参数。

PostMessage实现多窗口之间的数据传递的更多相关文章

  1. mui 窗口管理及窗口之间的数据传递

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  2. HTML5中window.postMessage,在两个页面之间的数据传递

    HTML5中window.postMessage,在两个页面之间的数据传递 2015年11月3日 8536次浏览 关于postMessage window.postMessage虽然说是html5的功 ...

  3. (转载)Javascript操作表单之间的数据传递

    (转载)http://www.aspxhome.com/javascript/skills/200710/214825.htm 今天有朋友问我关于用JAVASCRIPT来进行页面各表单之间的数据传递的 ...

  4. ASP.NET MVC3中Controller与View之间的数据传递

    在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: 一.  Controller向Vie ...

  5. Activity之间的数据传递

    最常用的Activity之间的数据传递. btnStartAty1.setOnClickListener(new View.OnClickListener() { @Override public v ...

  6. ASP.NET MVC 之控制器与视图之间的数据传递

    今天,我们来谈谈控制器与视图之间的数据传递. 数据传递,指的是视图与控制器之间的交互,包括两个方向上的数据交互,一个是把控制器的数据传到视图中,在视图中如何显示数据,一个是把视图数据传递到控制器中, ...

  7. iOS开发中视图控制器ViewControllers之间的数据传递

    iOS开发中视图控制器ViewControllers之间的数据传递 这里我们用一个demo来说明ios是如何在视图控制器之间传递重要的参数的.本文先从手写UI来讨论,在下一篇文章中讨论在storybo ...

  8. React中父组件与子组件之间的数据传递和标准化的思考

    React中父组件与子组件之间的数据传递的的实现大家都可以轻易做到,但对比很多人的实现方法,总是会有或多或少的差异.在一个团队中,这种实现的差异体现了每个人各自的理解的不同,但是反过来思考,一个团队用 ...

  9. Vue 爬坑之路(二)—— 组件之间的数据传递

    Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,com ...

随机推荐

  1. 关于HTML元素点击的时候,背景颜色秒进,缓缓退出的方法

    废话不多说,上代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  2. object.key 对象的键排序 可能出现的问题

    // 09-集成提测工作流var node_list_info09 = { '090101': '客户端集成自测', '090201': '编译配置', '090202': '编译出包', '0903 ...

  3. 关于Javascript闭包(Closure)

    闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域 ...

  4. LeetCode——150. Evaluate Reverse Polish Notation

    一.题目链接:https://leetcode.com/problems/evaluate-reverse-polish-notation/ 二.题目大意: 给定后缀表达式,求出该表达式的计算结果. ...

  5. 峰Redis学习(7)Redis 持久化RDB方式

    第一节:Redis 持久化介绍 redis所有的数据都存在内存中,所以速度非常快,但是一旦断电等情况,数据就没了.从内存当中同步到硬盘上,这个过程叫做持久化过程. 持久化操作,两种方式:rdb方式.a ...

  6. SEO之HTML代码优化

    原文地址:http://www.admin5.com/article/20081128/117821.shtml   一.文档类型(DOCTYPE) XHTML1.0有三种DOCTYPE: 1.过渡型 ...

  7. 1121 Damn Single (25 分)

    1121 Damn Single (25 分) "Damn Single (单身狗)" is the Chinese nickname for someone who is bei ...

  8. [UE4]控件模板参数

    创建的时候就会变成这样了.

  9. Python的可迭代对象、迭代器和生成器

    可迭代对象(Iterable) 这些可以直接作用于for循环的对象统称为可迭代对象:Iterable. 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list.t ...

  10. RxJava学习;数据转换、线程切换;

    Observable(被观察者,发射器)发送数据: just:发送单个的数据: Observable.just("cui","chen","bo&qu ...