解密:WPARAM和LPARAM中的W和L分别代表什么意思
作者:BlogUpdater |
时间:2020-08-02 |
浏览:1674 |
评论已关闭 条评论
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的消息设计体现了通用性设计的精髓:如果你不能确定未来这个东西会是什么,那么,现在就不要清楚地定义它。
如需转载,请注明来自:Topomel Box
- 下一篇: 官宣:Visual Studio对Codespaces的支持
- 上一篇: 打开运行窗口的一种快捷方式
相关推荐
- 为什么Runas不能在命令行上直接设置用户密码?
- Posted on 01月05日
- 拓扑梅尔智慧办公平台(Topomel Box) 2.0发布
- Posted on 05月05日
- 窗口销毁消息 WM_DESTROY 的正确处理方式
- Posted on 12月13日
- 搞清楚系列:什么是一个子(child)窗口
- Posted on 09月12日
评论已关闭。