WPARAM LPARAM2008-09-03 17:25根据字面意思理解:

WPARAM就是DWORD_PARAMETER(双字节参数)的缩写.

LPARAM就是LONG_PARAMETER(长整型参数)的缩写.

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

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

在Win 3.x中,WPARAM是16位的,而LPARAM是32位的,两者有明显的区别。因为地址通常是32位的,所以LPARAM被用来传递地址(指针),这个习惯在Win32 API中仍然能够看到。在Win32 API中,WPARAM和LPARAM都是32位,所以没有什么本质的区别。Windows的消息必须参考帮助文件才能知道具体的含义。如果是你定义的消息,愿意怎么使这两个参数都行。但是习惯上,我们愿意使用LPARAM传递地址,而WPARAM传递其他参数。

microsoft windows内部常见用法:

根据消息类型:

WM_PAINT,WM_COMMAND等:

LOWORD(wParam):子窗口ID

HIWORD(wParam):通知码(告诉父窗口到底发生了什么变化,通知码和控件的类型以及事件相关,系统对每一类控件的每一个事件的通知码都有明确的定义,用一个系统整常量来表示)

lParam:子窗口句柄

WM_LBUTTONDOWN,WM_MOUSEMOVE,WM_LBUTTONUP等:

LOWORD(lParam):坐标的x值

HIWORD(lParam):坐标的y值

如果是用户自定义的消息传递,这两个消息传递的附加参数用户可以自己定义传递什么值,具体视情况而定.如果遇到类型不匹配的情况,可以强制转换,也可以用其他任何合理的方式解决(比如用共用体解决char *不能传递的问题,参考上一篇文章).

WPARAM 与 LPARAM相关推荐

  1. wParam和lParam两个参数到底是什么意思?

    在Windows的消息函数中,有两个非常熟悉的参数:wParam,lParam. 这两个参数的字面意义对于现在的程序来说已经不重要了,因为它是16位系统的产物,为了保持程序的可移植性,就将它保存了下来 ...

  2. 关于wParam和lParam

    在VC的函数参数中常出现WPARAM和LPARAM,这两个有什么特殊意义么?它们的含义是不是要事先定义? WPARAM和LPARAM一般在消息里面用的很多,其实没有特殊的含义的.    是两普通的变量 ...

  3. Wparam与Lparam的区别(转)

    Wparam与Lparam的区别 在Win32 SDK中消息本身是作为一个结构体记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息.这个记录类型叫做MSG,它在window中是这样声明的: ...

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

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

  5. about wParam and lParam

    这两个是Win16系统遗留下来的产物了 在Win16API中WndProc有两个参数 一个是WORD类型的16位整型变量 另一个是LONG类型的32位整型变量, 因此根据匈牙利命名法,16位的变量就被 ...

  6. WPARAM 与 LPARAM

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

  7. WPARAM与LPARAM 之区别

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

  8. wParam与 lParam

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

  9. windows编程中wParam和lParam消息

    windows编程中wParam和lParam消息 1.WM_PAINT消息,LOWORD(lParam)是客户区的宽,HIWORD(lParam)是客户区的高. 2 滚动条WM_VSCROLL或WM ...

最新文章

  1. 线程介绍,异步,对象锁
  2. 网址被微信拦截怎么办 微信屏蔽的域名如何正常访问
  3. pkill mysql_每天一个linux命令:kill命令
  4. java request 封装对象_java通过request自动封装复杂对象
  5. C语言 文件读写 fputc 函数 - C语言零基础入门教程
  6. JavaScript==比较的规则
  7. IIS安全设置终极技巧
  8. usb不能识别的解决方案
  9. web项目对接钉钉扫码登录
  10. Java IO(文件流)
  11. iOS小技能:模拟鼠标点击(针对Mac)
  12. 骨干是折腾出来的 读书笔记10
  13. Movavi Video Editor 15 Plus for mac(视频编辑软件)
  14. linux tomcat cpu占用高,排查tomcat服务器CPU使用率过高
  15. Redis(2) redis-cli 客户端操作Redis - 常用命令大全
  16. element upload预览_element-ui上传组件图片默认不上传显示图片缩略图
  17. 【转贴】看星际争霸人工智能伯克利如何“主宰”了“2010星际争霸人工智能挑战赛”...
  18. 大数据学习笔记—大数据概论
  19. 一台云服务器可以干什么?
  20. SIGABRT的可能原因

热门文章

  1. glibc和musl libc的区别
  2. eclipse各个版本介绍说明
  3. 移动Web MUI框架Switch开关自定义中文文字
  4. 微信小程序自定义组件开发图文详解
  5. atan函数和atan2函数的区别
  6. springBoot二维码生成案例
  7. 使用python抓取落网期刊图片
  8. Python将字符串转换为日期时间
  9. go tool pprof与trace的简单使用
  10. SIMPLE算法求解多孔介质的一维流动控制方程