[AHK]param w和l是什么的缩写

PostMessage, Msg [, wParam, lParam, Control, WinTitle, WinText, ExcludeTitle, ExcludeText]
Param w和l是什么的缩写?
答:
Param--parameter
W--WORD
L--LONG

wParam和lParam 这两个是Win16系统遗留下来的产物,在Win16API中WndProc有两个参数:
一个是WORD类型的16位整型变量;另一个是LONG类型的32位整型变量。因此根据匈牙利命名法,16位的变量就被命名为wParam, 32位的变量就被命名为lParam。

在Win 3.x中,WPARAM是16位的,而LPARAM是32位的,两者有明显的区别。因为地址通常是32位的,所以LPARAM 被用来传递地址,这个习惯在Win32 API中仍然能够看到。在Win32 API中,原来的16位变量也被扩展为32位,因此此时wParam和lParam的大小完全相同都是32位,所以没有什么本质的区 别。

在Win32API的早期,为了保证和Win16API的代码可移植性MS定义了WPARAM和LPARAM两个宏。
当时保留了w前缀的原因一方面是由于WPARAM宏也以W开头,还有也因为要提醒程序员注意到可移植性,当然到了现在Win16早已退出历史舞台,这个前缀也就约定俗成的沿用下来了。

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

Windows.h中新的命名规范:
类型&定义描述
WPARAM 声明wParam所使用的类型,wParam是窗口程序的第三个参数
LPARAM 声明lParam所使用的类型,lParam是窗口程序的第四个参数

你可能感兴趣的:(AutoHotkey,win32)