利用自定义消息处理函数的WPARAM或LPARAM参数传递指针
有自定义消息:
#define WM_TEST WM_USER+121
消息处理函数:
afx_msg void OnTest(WPARAM wParam,LPARAM lParam); 该消息是一个主线程向辅助线程发送数据的消息。
主线程中发送消息的代码:
m_param.pDoc=pDoc;
m_param.pSpecAnlyz=m_pSpecAnlyz;
// CWinThread* pThread=AfxBeginThread(ThreadTest,static_cast<LPVOID>(&m_param));
m_pTestThread=(CTestThread*)AfxBeginThread(RUNTIME_CLASS(CTestThread));
Sleep(200);
// 必须先把&m_param转化为void*指针,然后才可以进一步强制转化为WPARAM
m_pTestThread->PostThreadMessageW(WM_TEST,(WPARAM)((void*)&m_param),1);// 发送测试消息 m_param为自定义类型,其成员为指针变量,因此 m_param无法强制转化为WPARAM。但是m_param的地址指针和WPARAM一样,都是4个字节,因此可以将m_param的地址指针起那个只转换为WPARAM。在VC.NET2005中,直接转换编译报错。考虑到void * 之后,先将&m_param转化为void*指针,然后才可以进一步强制转化为WPARAM。
同样的,在OnTest中,必须先将wParam强制转换为void * ,然后进一步转换为其他类型。
PS:网上有高手指出,局部指针变量最好不要作为wParam或 lParam传递,因为当消息响应时改变量可能已经不在了。
利用自定义消息处理函数的WPARAM或LPARAM参数传递指针的更多相关文章
- EntityFramework Core 2.0自定义标量函数两种方式
前言 上一节我们讲完原始查询如何防止SQL注入问题同时并提供了几种方式.本节我们继续来讲讲EF Core 2.0中的新特性自定义标量函数. 自定义标量函数两种方式 在EF Core 2.0中我们可以将 ...
- wxwidget自定义消息处理步骤
from http://www.cppblog.com/kenlistian/archive/2009/02/06/73096.html 略有修改 wxwidget自定义消息处理步骤 自定义消息处理( ...
- SendMessage()、WPARAM、LPARAM函数使用例子(转)
http://chujiaba.blog.163.com/blog/static/18991813720106209350592/ 2010-07-20 21:35:00| 分类: C | 标 ...
- 利用Qt中的ui文件生成PyQt5程序,自定义槽函数
1.在Qt Creator4.8.0上面设计如上.ui文件 2.点击上方图标,可以建立信号-槽连接,button_click()为自定义槽函数 3.设计目的:点击clear按钮,可消除上方文本框中的内 ...
- SendMessage和PostMessage区别以及WPARAM 和 LPARAM区别
WPARAM 和 LPARAM wParam和lParam 这两个是Win16系统遗留下来的产物,在Win16API中WndProc有两个参数:一个是WORD类型的16位整型变量:另一个是LONG类型 ...
- wParam与lParam的区别
wParam与lParam的区别 lParam 和 wParam 是宏定义,一般在消息函数中带这两个类型的参数,通常用来存储窗口消息的参数. LRESULT CALLBACK WindowProc(H ...
- 走进windows编程的世界-----消息处理函数(1)
Win32消息机制 过程驱动:程序是依照我们预先定义好的顺序运行.每运行一步,下一步都已经依照预定的顺序 继续运行,直至程序结束. 事件驱动:程序的运行顺序是无序的.某个时间点所运行的 ...
- LRESULT与wParam和lParam的问题
在微软vc提供的头文件中有定义在winnt.h中typedef long LONG;在windef.h中typedef LONG LRESULT; 所以LRESULT就是long,也就是长整形之所以取 ...
- 浅谈MFC类CrackMe中消息处理函数查找方法
最近一个学姐发给我了一份CrackMe希望我解一下,其中涉及到了MFC的消息函数查找的问题,就顺便以此为例谈一下自己使用的消息函数查找的方法.本人萌新,如果有任何错漏与解释不清的地方,欢迎各路大佬指正 ...
随机推荐
- IntelliJ IDEA 2018 设置代码提示对大小写不敏感
setting->Editor->General->Code Completion取消勾选Match case
- webpack 基本功能和原理
依赖管理:方便引用第三方模块.让模块更容易复用.避免全局注入导致的冲突.避免重复加载或加载不需要的模块. 合并代码:把各个分散的模块集中打包成大文件,减少HTTP的请求链接数,配合UglifyJS可以 ...
- @Autowired注解和启动自动扫描的三种方式(spring bean配置自动扫描功能的三种方式)
前言: @Autowired注解代码定义 @Target({ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.METHOD, Elemen ...
- 2014年将会受欢迎的IT技能--你有多少哪?
据国外媒体报道,据Global Knowledge等十几家研究机构发布的2014年IT技能和薪金调查报告显示,2014年最受欢迎的十大IT技能如下: 1.编程与应用开发 据美国劳工统计局称,开发者和程 ...
- PowerDesigner:导出SQL脚本以及问题解决
在PowerDesigner中点击DataBase -----------> Generate Datebase -----(可以点击Preview预览sql语句)------->设置 ...
- codevs-1205
1205 单词翻转 题目描述 Description 给出一个英语句子,希望你把句子里的单词顺序都翻转过来 输入描述 Input Description 输入包括一个英语句子. 输出描述 Output ...
- [WIP]express 入门
创建: 2019/04/10 install 创建并移动进新文件夹 mkdir sample_app cd sample_app 创建package.json并导入express npm ini ...
- E20180605-hm
arbitrary adj. 乱; 随意的,任性的,随心所欲的; 主观的,武断的; 霸道的,专制的,专横的,独断独行的; session n. 开会,会议; (法庭的) 开庭; 会期,学期; (进行某 ...
- 洛谷 - P1390 - 公约数的和 - 莫比乌斯反演 - 欧拉函数
https://www.luogu.org/problemnew/show/P1390 求 $\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m} gcd(i,j) $ ...
- [Xcode 实际操作]七、文件与数据-(16)解析XML文档
目录:[Swift]Xcode实际操作 本文将演示如何解析XML文档. 项目中已添加一份XML文档:worker.xml <?xml version="1.0" encodi ...