http://blog.csdn.net/ljd_1986413/article/details/6258604原文地址

第一:WPARAM 和 LPARAM 是什么东西

typedef uint wparam;//就是无符号整形
         typedef long lparam;//就是长整形

typedef   struct   tagMSG

{           //   msg      
                                  HWND   hwnd;       //窗口句柄  
                                  UINT   message;       //消息常量标识符  
                                  WPARAM   wParam;     //32位消息的特定附加信息,具体表示什么处决于message  
                                  LPARAM   lParam;     //32位消息的特定附加信息,具体表示什么处决于message  
                                  DWORD   time;       //消息创建时的时间  
                                  POINT   pt;               //消息创建时的鼠标位置  
                              }   MSG;  
        hwnd   接收消息的32位窗口句柄。窗口可以是任何类型的屏幕对象,  
        因为Win32能够维护大多数可视对象的句柄(窗口、对话框、按钮、编辑框等)。  
        message   用于区别其他消息的常量值,这些常量可以是Windows单元中预定义的常量,也可以是自定义的常量。  
        wParam   通常是一个与消息有关的常量值,也可能是窗口或控件的句柄。通常用于存储小段信息,如标志  
        lParam   通常是一个指向内存中数据的指针,通常用于存储消息所需的对象。 
        由于wParam,lParam和指针都是32位的,需要时可以强制类型转换。具体表示什么,与message相关,

他们是事先定义好的。  
        如果自定义消息:#define   WM_MYMESSAGE   WM_USER+100,需确定wParam,lParam的意义  
        (假设wParam=0时发送数据,wParam=1时接收数据,lParam为CMyClass*   指针,指向一个CMyClass对象,

准备要发送的数据或接收数据  
        发送WM_MYMESSAGE时   SendMessage(hwnd,WM_MYMESSAGE,0,pMyClassObject)  
        接收消息的窗口,接收WM_MYMESSAGE中(CMyClass*)lParam参数即pMyClassObject传过来的数据

第二:WPARAM 和 LPARAM 所代表的意义

是两个消息参数,相当于长整数。例如一个鼠标左键按下的消息WM_LBUTTONDOW,那么左键按下时,鼠标位置在那里呢?

就需要用LPARAM参数来传递鼠标位置信息。

如://鼠标坐标
         point.x=LOWORD(pMsg->lParam);//LOWORD取低位 后面四位 相对于客户窗体左上角的X偏移值
         point.y=HIWORD(pMsg->lParam);//HIWORDs取高位 前面四位 相对于客户窗体左上角的Y偏移值

还有其他的信息在这个时候也要知道,就是Ctrl键是否也按下了等信息。

查看一下MSDN关于WM_LBUTTONDOW的帮助,你可以明白很多。

懒人的问题真多,对于自己定义的消息,你想在WPARAM   和   LPARAM里传什么参数,接受到的就是什么参数,比如说: 
         char   str[]= "abcde "; 
         myWnd.SendMessage(   WM_MYMESSAGE,   (LPARAM)str,   0   ); 
         这样接收到的wParam就可以当字符串处理。对于Windows预定义的消息,各自的这两个参数包含的信息各不相同。

param是parameter(参数)的意思 
         wParam和lParam都作为函数的参数

WPARAM:32位(双字节)的消息参数。值的格式和意思取决于主要的事件消息类型。在不同的情况下,WPARAM变元可能传输一个坐标点对,使用低字值标识次要的消息类型,提供某些其他的数据类型,或被完全忽略。在很多情况下,WPARAM值将被看成两个独立的字值,分别具有不同的功能。

LPARAM:32位(长整型)的消息参数。这个参数的值和意思取决于主事件消息类型。在不同的情况下,LPARAM变元可能提供一个字符串或记录结构的指针,分解为一组字、字节或标志值,或者往往完全没有用。

作为参数,在32为系统上它们的类型就是unsigned int,根据情况你可以放不同的数据、指针,只要是4字节的就行

谈谈MSG中的 WPARAM 和 LPARAM相关推荐

  1. 十三:谈谈MSG中的 WPARAM 和 LPARAM

    第一:WPARAM 和 LPARAM 是什么东西 typedef uint wparam;//就是无符号整形          typedef long lparam;//就是长整形 typedef ...

  2. 消息中的wParam和lParam

    具体是这么说: "在Win 3.x中,WPARAM是16位的,而LPARAM是32位的,两者有明显的区别.因为地址通常是32位的,所以LPARAM 被用来传递地址,这个习惯在Win32 AP ...

  3. WPARAM 与 LPARAM

    WPARAM LPARAM2008-09-03 17:25根据字面意思理解: WPARAM就是DWORD_PARAMETER(双字节参数)的缩写. LPARAM就是LONG_PARAMETER(长整型 ...

  4. WPARAM 与 LPARAM 参数的解析 [C#、WinAPI]

    先略谈一下什么是WPARAM 与 LPARAM 参数: 在我们的程序和WindowAPI打交道时,特别是在处理鼠标键盘消息时,WPARAM 与 LPARAM 参数会经常出现.在Win32 API中,W ...

  5. WPARAM 与 LPARAM

    WPARAM LPARAM2008-09-03 17:25根据字面意思理解: WPARAM就是DWORD_PARAMETER(双字节参数)的缩写. LPARAM就是LONG_PARAMETER(长整型 ...

  6. WPARAM与LPARAM 之区别

    WPARAM与LPARAM 之区别     在Win 3.x中,WPARAM是16位的,而LPARAM是32位的,两者有明显的区别.因为地址通常是32位的,所以LPARAM被用来传递地址,这个习惯在W ...

  7. wParam与 lParam

    根据字面意思理解: WPARAM就是DWORD_PARAMETER(双字节参数)的缩写. LPARAM就是LONG_PARAMETER(长整型参数)的缩写. WPARAM:16位(双字节(在16位系统 ...

  8. (转载)WPARAM与LPARAM

    根据字面意思理解: WPARAM就是DWORD_PARAMETER(双字节参数)的缩写. LPARAM就是LONG_PARAMETER(长整型参数)的缩写. WPARAM:16位(双字节(在16位系统 ...

  9. WPARAM和LPARAM的含义

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

最新文章

  1. vue3绑定多个事件
  2. hybris backoffice和产品主数据相关的一些sample data
  3. Tomcat一步步实现反向代理、负载均衡、内存复制
  4. c语言程序源代码_程序的编译、链接和执行
  5. 初探Golang(2)-常量和命名规范
  6. 最小公倍数的求解原理和证明
  7. duilib CPaintManagerUI的WM_PAINT消息
  8. java certification_Java Certification.Status方法代码示例
  9. 《个人信息安全规范》会让我们的信息更安全吗?
  10. 科技论文写作常用句式结构
  11. Windform c# pictureBox 更换背景图片
  12. [Objective-C] 010_Foundation框架之NSSet与NSMutableSet
  13. 如何写期望薪资、离职原因、求职意向?
  14. java对象与byte[]数组之间的相互转化,压缩解压缩操作
  15. android 均衡器_通过均衡器提高Android设备的声音质量
  16. 时间戳 和 时间的相互转换
  17. ppt怎么不显示动画效果的标记,看上去好乱啊
  18. 什么是匿名对象,匿名对象怎么使用
  19. 系统一键还原后发现无法激活windows解决方案
  20. 【js、vue-print-nb】js 在Chorme中打印页面去掉页眉页脚

热门文章

  1. 2018年社交电商巨大风口 无忧猴布局全国
  2. sort 排序 + unique 去重
  3. 2020年中国电吹风行业发展现状分析,小功率、便携式电吹风市场逐渐崛起「图」
  4. python诞生的时间地点人物_用Python来计算任意视频中各人物的出镜时间!这项目值50K吗?...
  5. SSM框架学习-SpringBoot和SpringMVC
  6. 实验一:Sniffer Pro网络分析器应用实验
  7. 信息学奥赛一本通:1057:简单计算器
  8. ceph osdmap crush 分析
  9. cas虚拟服务器上新建交换机,H3C CAS系统虚拟机安装
  10. mayavi中quiver3d颜色样例