有自定义消息:

#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参数传递指针的更多相关文章

  1. EntityFramework Core 2.0自定义标量函数两种方式

    前言 上一节我们讲完原始查询如何防止SQL注入问题同时并提供了几种方式.本节我们继续来讲讲EF Core 2.0中的新特性自定义标量函数. 自定义标量函数两种方式 在EF Core 2.0中我们可以将 ...

  2. wxwidget自定义消息处理步骤

    from http://www.cppblog.com/kenlistian/archive/2009/02/06/73096.html 略有修改 wxwidget自定义消息处理步骤 自定义消息处理( ...

  3. SendMessage()、WPARAM、LPARAM函数使用例子(转)

      http://chujiaba.blog.163.com/blog/static/18991813720106209350592/ 2010-07-20 21:35:00|  分类: C |  标 ...

  4. 利用Qt中的ui文件生成PyQt5程序,自定义槽函数

    1.在Qt Creator4.8.0上面设计如上.ui文件 2.点击上方图标,可以建立信号-槽连接,button_click()为自定义槽函数 3.设计目的:点击clear按钮,可消除上方文本框中的内 ...

  5. SendMessage和PostMessage区别以及WPARAM 和 LPARAM区别

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

  6. wParam与lParam的区别

    wParam与lParam的区别 lParam 和 wParam 是宏定义,一般在消息函数中带这两个类型的参数,通常用来存储窗口消息的参数. LRESULT CALLBACK WindowProc(H ...

  7. 走进windows编程的世界-----消息处理函数(1)

    Win32消息机制     过程驱动:程序是依照我们预先定义好的顺序运行.每运行一步,下一步都已经依照预定的顺序 继续运行,直至程序结束.     事件驱动:程序的运行顺序是无序的.某个时间点所运行的 ...

  8. LRESULT与wParam和lParam的问题

    在微软vc提供的头文件中有定义在winnt.h中typedef long LONG;在windef.h中typedef LONG LRESULT; 所以LRESULT就是long,也就是长整形之所以取 ...

  9. 浅谈MFC类CrackMe中消息处理函数查找方法

    最近一个学姐发给我了一份CrackMe希望我解一下,其中涉及到了MFC的消息函数查找的问题,就顺便以此为例谈一下自己使用的消息函数查找的方法.本人萌新,如果有任何错漏与解释不清的地方,欢迎各路大佬指正 ...

随机推荐

  1. docker --help 详解

    [root@c1 _src]# dockerd --help Usage: dockerd [OPTIONS] A self-sufficient runtime for containers. Op ...

  2. shell脚本 列出所有网卡的ip地址

    #!/bin/bashfor i in `ifconfig | grep -o ^[a-z0-9]*`do ifconfig $i|sed -n 2p|awk '{ print $2 }'|tr -d ...

  3. linux命令:rsync

    Rsync的命令格式可以为以下六种: rsync [OPTION]... SRC DEST rsync [OPTION]... SRC [USER@]HOST:DEST rsync [OPTION]. ...

  4. Android studio 集成 Genymotion

    这学期刚学android,q其内置的模拟器一开起来电脑实在卡的不要不要的了.查了一下可以在studio中集成genymotion模拟器.各方面百度最后总结了几点. 要在studio中集成genymot ...

  5. mysql 自动备份命令

    --1.全备 --single-transaction:基于此选项能实现热备InnoDB表  --databases要备份的表名mysqldump -u root -p --single-transa ...

  6. CodeForces——Game with string(STL stack栈)

    Two people are playing a game with a string ss, consisting of lowercase latin letters. On a player's ...

  7. JAG Practice Contest for ACM-ICPC Asia Regional 2016B题【BFS】

    题意: 就是公主要逃跑,士兵要抓公主,问你能不能逃跑哇: 思路: 就是终点搞成起点,然后BFS一下就好了,最后枚举一下出口到公主的距离是不是<所有的到士兵的距离: #include <bi ...

  8. opengl VAO ,VBO

    A Vertex Array Object (VAO) is an object which contains one or more Vertex Buffer Objects and is des ...

  9. 进击python第一篇:相遇

    1.第一句Python代码 在 当前目录下创建 hello.py 文件,内容如下: print "hello,world!" 执行 hello.py 文件,即: python he ...

  10. builder模式的新学习

    builder模式的新学习 静态工厂和构造器有个共同的局限性:他们不能很好的扩展到大量的可选参数.大多数产品在牧歌可选与中都会有非零的值 对于这种类,应该使用哪种构造器或者静态方法来进行编写?程序员一 ...