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

本文介绍了Windows API中WPARAM和LPARAM参数的含义,详细讲解了如何在C#中解析这两个参数,特别是HIWORD(lParam)用于获取坐标y值的方法。
摘要由CSDN通过智能技术生成

先略谈一下什么是WPARAM 与 LPARAM 参数:

 

在我们的程序和WindowAPI打交道时,特别是在处理鼠标键盘消息时,WPARAM 与 LPARAM 参数会经常出现。在Win32 API中,WPARAM和LPARAM都是32位,所以在数据类型上没有什么本质的区别。
但是对于不同的WinAPI,WPARAM 与 LPARAM 参数被承载者不同的含义。WPARAM的值及格式取决于主要的事件消息类型。在不同的情况下,WPARAM变元可能传输一个坐标点对,使用低字值标识次要的消息类型,提供某些其他的数据类型,或被完全忽略。在很多情况下,WPARAM值将被看成两个独立的字值,分别具有不同的功能。LPARAM的值和意思取决于主事件消息类型。在不同的情况下,LPARAM变元可能提供一个字符串或记录结构的指针,分解为一组字、字节或标志值,或者往往完全没有用。

 

Windows的消息必须参考帮助文件才能知道具体的含义。如果是你定义的消息,愿意怎么使这两个参数都行。但是习惯上,我们愿意使用LPARAM传递地址,而WPARAM传递其他参数。
下面是microsoft windows内部常见用法:

根据消息类型:

 

------WM_PAINT,WM_COMMAND等:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值