WPARAM 与 LPARAM
来源:互联网 发布:mac android 文件传输 编辑:程序博客网 时间:2024/04/27 03:13
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 *不能传递的问题,参考上一篇文章).
- tagMSG 与 (WPARAM wParam,LPARAM lParam)
- (转载)WPARAM与LPARAM
- WPARAM 与 LPARAM
- WPARAM 与 LPARAM
- wParam与 lParam
- WPARAM wParam, LPARAM lParam
- WPARAM与LPARAM 之区别
- WPARAM与LPARAM的区别
- WPARAM与LPARAM的区别
- WPARAM与LPARAM的区别
- Wparam与Lparam的区别
- WPARAM与LPARAM有什么区别
- 搞清楚了WPARAM与LPARAM的区别
- Wparam与Lparam的区别(转)
- MFC wParam与lParam 的问题
- WPARAM与LPARAM的高位与低位问题
- WPARAM与LPARAM的高位与低位问题
- wParam 和 lParam
- 线程,进程和程序的简单比较
- 回调函数
- 系统补丁及软件的集成安装
- 回调函数2
- 字符集
- WPARAM 与 LPARAM
- WPARAM 和 LPARAM,消息响应机制
- 控件
- 中间件的基础知识
- 请问:Scanner类与System.in类有什么区别??方法都有哪些????
- Java对.NET的经典比较
- 可选性自变量
- 实现全选或全不选js
- 测试管理一点点建议