WPARAM与LPARAM 之区别
WPARAM与LPARAM 之区别
在Win 3.x中,WPARAM是16位的,而LPARAM是32位的,两者有明显的区别。因为地址通常是32位的,所以LPARAM被用来传递地址,这个习惯在Win32 API中仍然能够看到。在Win32 API中,WPARAM和LPARAM都是32位,所以没有什么本质的区别。Windows的消息必须参考帮助文件才能知道具体的含义。如果是你定义的消息,愿意怎么使这两个参数都行。但是习惯上,我们愿意使用LPARAM传递地址,而WPARAM传递其他参数。
-------------
wParam和lParam
这两个是Win16系统遗留下来的产物,在Win16API中WndProc有两个参数:
一个是WORD类型的16位整型变量; 另一个是LONG类型的32位整型变量。
因此根据匈牙利命名法,16位的变量就被命名为wParam, 而32位的变量就被命名为lParam。
到了Win32API中,原来的16位变量也被扩展为32位,因此wParam和lParam的大小完全相同。
在Win32API的早期,为了保证和Win16API的代码可移植性MS定义了WPARAM和LPARAM两个宏。
当时保留了w前缀的原因一方面是由于WPARAM宏也已W开头,
还有也因为要提醒程序员注意到可移植性,当然到了现在
Win16早已退出历史舞台,这个前缀也就约定俗成的沿用下来了。
习惯用wParam作为数类型的参数,LPARAM作为指针。
lParam为long型,与指针类型大小一样,用它传地址较合适
WPARAM--- A value passed as a parameter to a window procedure or callback function: 16 bits on Windows versions 3.0 and 3.1; 32 bits on Win32
LPARAM--- A 32-bit value passed as a parameter to a window procedure or callback function.
in other words, in Win32 platform they have no difference.
WPARAM与LPARAM 之区别相关推荐
- Wparam与Lparam的区别(转)
Wparam与Lparam的区别 在Win32 SDK中消息本身是作为一个结构体记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息.这个记录类型叫做MSG,它在window中是这样声明的: ...
- Wparam与Lparam的区别
在Win32 SDK中消息本身是作为一个结构体记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息.这个记录类型叫做MSG,它在window中是这样声明的: typedef struct t ...
- 关于wParam和lParam
在VC的函数参数中常出现WPARAM和LPARAM,这两个有什么特殊意义么?它们的含义是不是要事先定义? WPARAM和LPARAM一般在消息里面用的很多,其实没有特殊的含义的. 是两普通的变量 ...
- WPARAM 与 LPARAM
WPARAM LPARAM2008-09-03 17:25根据字面意思理解: WPARAM就是DWORD_PARAMETER(双字节参数)的缩写. LPARAM就是LONG_PARAMETER(长整型 ...
- WPARAM 与 LPARAM 参数的解析 [C#、WinAPI]
先略谈一下什么是WPARAM 与 LPARAM 参数: 在我们的程序和WindowAPI打交道时,特别是在处理鼠标键盘消息时,WPARAM 与 LPARAM 参数会经常出现.在Win32 API中,W ...
- WPARAM 与 LPARAM
WPARAM LPARAM2008-09-03 17:25根据字面意思理解: WPARAM就是DWORD_PARAMETER(双字节参数)的缩写. LPARAM就是LONG_PARAMETER(长整型 ...
- wParam与 lParam
根据字面意思理解: WPARAM就是DWORD_PARAMETER(双字节参数)的缩写. LPARAM就是LONG_PARAMETER(长整型参数)的缩写. WPARAM:16位(双字节(在16位系统 ...
- (转载)WPARAM与LPARAM
根据字面意思理解: WPARAM就是DWORD_PARAMETER(双字节参数)的缩写. LPARAM就是LONG_PARAMETER(长整型参数)的缩写. WPARAM:16位(双字节(在16位系统 ...
- 十三:谈谈MSG中的 WPARAM 和 LPARAM
第一:WPARAM 和 LPARAM 是什么东西 typedef uint wparam;//就是无符号整形 typedef long lparam;//就是长整形 typedef ...
最新文章
- MNE-Python : TypeError: today() takes no keyword arguments
- php提供的用户密码加密函数
- 是否会成为问题——Linq to Sql的执行可能无法复用查询计划
- 【剑指offer】_01 (二维数组中的查找)
- 吴恩达深度学习4.2练习_Convolutional Neural Networks_Residual Networks
- java转sap hybris方向_SAP Hybris的Convertor, Populator, Facade和DTO这几个概念是如何协同工作的...
- 什么是北大核心期刊,一篇文章带你彻底弄懂
- 暗影精灵3 PLUS 安装黑苹果
- 关于学籍管理系统的可行性研究报告
- mysql千万测试表生成,随机id、username、age、sex、create_time
- selenium driver关闭
- 累加器 java_Spark笔记之累加器(Accumulator)
- 自定义地雷数的扫雷(控制台运行)
- AsyncTask实例
- U盘安装Linux系统教程
- 1.亿级流量电商详情页系统实战--主节点部署redis
- python爬取bilibili数据_如何使用Python爬取bilibili视频(详细教程)
- 云服务器物理机在,一个云服务器会在两个物理机上吗
- 第4季1:将AR0130摄像头更换为OV9712摄像头
- 中国MEMS传感器行业运营模式调研及投资效益分析报告2022-2027年