在WM_COMMAND中,lParam用来区分是命令消息还是控件通知消息:如果lParam为NULL,则这是个命令消息,否则lParam里面放的必然就是控件的句柄,是一个控件通知消息。对于wParam则是低位放的是控件ID,高位放的是相应的消息事件。
解释也是:
lParam=NULL or 控件的句柄
wParam则是低位放的是控件ID,高位放的是相应的消息事件。 教训:
靠猜靠蒙是靠不住的,调试才是王道!!!调调更健康!!! floor6ggg 发表于 2019-11-22 23:33
将第五到第七行,更改为:
我本来有点理解,你这么说我更糊涂了。我的理解是:高位字符,等于GUI事件触发,低位字符,等于控件ID。 floor6ggg 发表于 2019-11-22 23:37
https://blog.csdn.net/HiRuyue/article/details/9632507 里面提到:
在WM_COMMAND中,lParam用来区分是 ...
刚才没看到你这楼的回复,我的理解也是这样,虽然感觉硬生生的,但是也没有别的更好的解释。另外,我只要在GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")中,加入_ArrayDisplay()来显示数组,就会卡死,我加入了足够大的Sleep,也无济于事。 _arraydisplay你直接查看函数构造就知道为什么了,完全就是一个完整的GUI脚本 查windows资料去微软自家查:https://docs.microsoft.com/zh-cn/windows/win32/menurc/wm-command
注意看备注:
RemarksUse of the wParam and lParam parameters are summarized here.
Message SourcewParam (high word)wParam (low word)lParam
Menu0Menu identifier (IDM_*)0
Accelerator1Accelerator identifier (IDM_*)0
ControlControl-defined notification codeControl identifierHandle to the control window
当消息是来自 菜单 时,lParam是0。wParam的高位是0,低位是 菜单ID。
当消息是来自 加速键 时 ,lParam是0。wParam的高位是1,低位是 加速键ID。
当消息是来自 控件 时 ,lParam是 控件句柄。wParam的高位是 控件的通知代码,低位是 控件ID。
haijie1223 发表于 2019-11-28 16:58
查windows资料去微软自家查:https://docs.microsoft.com/zh-cn/windows/win32/menurc/wm-command
注意看 ...
看了你发的资料,对这个函数有了进一步的了解,谢谢!但是有的还是不懂,比如,$hWnd, $iMsg, $wParam, $lParam这几个参数,为啥不用先定义就能使用? smooth 发表于 2019-12-2 12:18
看了你发的资料,对这个函数有了进一步的了解,谢谢!但是有的还是不懂,比如,$hWnd, $iMsg, $wParam, $ ...
编程的基础,形参本身就是一种定义。
页:
1
[2]