首页
学习
活动
专区
工具
TVP
发布

解密:WPARAM和LPARAM中的W和L分别代表什么意思

Windows消息的两个参数

曾经有那么一段时间,Windows还是一个16位的操作系统。

每一个Windows消息会携带两个参数,它们分别被叫做WPARAM和LPARAM。第一个参数是一个16位的数据(Word),所以它被称之为W。

第二个参数是一个32位的数据(Long),所以它被称之为L。

你可以使用W参数来传递诸如句柄和整数这一类的数据,对于指针数据来说,你可以使用L参数来传递它。当Windows被转换为32位版本之后,WPARAM也从原来的16位迁移到了32位,所以,虽然WPARAM中的W代表Word,但是它已经不再是一个16位的数据了。(甚至在64位操作系统中,这两个参数长度被进一步地扩展到了64位。)

了解这其中的历史故事还是有点用的。如果你仔细地观察一下Windows消息的设计,你会发现,如果消息中携带了某个指针信息,则这个指针通常会保存在消息的LPARAM参数中,如果携带的是一个句柄或者一个整数,则通常会使用WPARAM参数来保存。

了解了这个原理,我们在记忆某个Windows消息的参数的时候就会显得容易一点。相反的,如果一个消息的参数违反了上述的惯例,则你可能会想:不对劲,这里可能有点问题。

总结

Windows的消息设计体现了通用性设计的精髓:如果你不能确定未来这个东西会是什么,那么,现在就不要清楚地定义它。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200802A0CUN100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券