根据字面意思理解:

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. about wParam and lParam

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

  3. WPARAM 与 LPARAM

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

  4. WPARAM和LPARAM的含义

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

  5. LRESULT与wParam和lParam的问题

    原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/4029710.html 在微软vc提供的头文件中有定义在winnt.h中typedef long LONG ...

  6. 各种消息下wParam及lParam值的含义

    各种消息下wParam及lParam值的含义 01.WM_PAINT消息 LOWORD(lParam)是客户区的宽,HIWORD(lParam)是客户区的高   02.滚动条WM_VSCROLL或WM ...

  7. 关于wParam和lParam

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

  8. WPARAM 与 LPARAM

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

  9. Wparam与Lparam的区别(转)

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

最新文章

  1. android首页图片轮播效果,Android_Android自动播放Banner图片轮播效果,先看一下效果图支持本地图 - phpStudy...
  2. 我的北大故事:犯其至难图其至远!
  3. AS3中的强制类型转换
  4. 024_html列表
  5. 南京工程学院 嵌入式linux 复习
  6. Java内存模型解析
  7. html在线拖拽环绕,jQuery实现html元素拖拽
  8. python ckeditor上传图片400错误_又一款python开发神器
  9. 【转载保存】修改IK分词器源码实现动态加载词典
  10. Hive中Database、Table的创建与查询
  11. 阿里开源mysql日志_使用过mysql的binlog吗?看看如何用binlog排查阿里开源项目otter的问题...
  12. ubuntu18.04彻底卸载mysql5.7,图文详解
  13. 程序安装制作不用愁—Wise installation入门教程
  14. linux下的工作目录切换实现
  15. input type=text和textarea的区别
  16. 怎么用imp命令把dmp文件从本地导入到远处的数据库服务器,Oracle 数据库导入导出dmp文件...
  17. 特斯拉为什么要降价?
  18. uc android 面试题,一道新浪UC部门软件测试面试题
  19. C++17 并行排序初体验
  20. webpack中文官网

热门文章

  1. kali永久提root权限
  2. 华为服务器检索信息,裸金属服务器使用标签检索资源
  3. CSS高级雪碧图插入方法
  4. python 实现经纬度与大地2000坐标的转换
  5. 【技术整合】各技术解决方案与对应解决的问题
  6. MySQL下载完如何打开
  7. 《推荐系统实践》- 项亮
  8. PB级大规模Elasticsearch集群运维与调优实践
  9. win11下MSVC++ 6.0无法启动问题
  10. 手机分辨率PPI和DPI的区别