haijie1223 发表于 2020-2-14 09:26:22

smooth 发表于 2020-2-14 09:19
发哥,不是为了增加代码的复杂性。在Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)函数里,我还有其 ...

哎,毫无配合幽默的默契感。。。

itsky2 发表于 2020-2-15 22:21:36

smooth 发表于 2020-2-14 09:24
在主循环的GUIGetMsg(),能实时响应?比如在input框中输入数据,不用鼠标点击,不用回车,就能自动返回结 ...

这个从根本上就不行,即使是消息或是OnEvent也不行,我都试过了,是微软的限制

smooth 发表于 2020-2-16 08:34:18

haijie1223 发表于 2020-2-14 09:26
哎,毫无配合幽默的默契感。。。

哈哈哈,没想到发哥是个幽默的人。

smooth 发表于 2020-2-16 08:39:42

itsky2 发表于 2020-2-15 22:21
这个从根本上就不行,即使是消息或是OnEvent也不行,我都试过了,是微软的限制

所以要注册消息函数Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)来实现。

chzj589 发表于 2020-2-16 09:46:25

本帖最后由 chzj589 于 2020-2-16 13:16 编辑

smooth 发表于 2020-2-16 08:39
所以要注册消息函数Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)来实现。
是这个意思吗?
见图:

itsky2 发表于 2020-2-16 11:42:47

smooth 发表于 2020-2-16 08:39
所以要注册消息函数Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)来实现。

那这个有示例吗,很多时候都用得到

smooth 发表于 2020-2-16 12:13:38

itsky2 发表于 2020-2-16 11:42
那这个有示例吗,很多时候都用得到


GUIRegisterMsg($WM_COMMAND, "WM_COMMAND");要放在主循环之前

Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
Local $iIDFrom, $iCode
$iIDFrom = _WinAPI_LoWord($wParam)
$iCode = _WinAPI_HiWord($wParam)
If $iCode = $EN_CHANGE Then
    If $iIDFrom = $Input[$i] Then
    此处自己的代码
    Endif
Endif
                                                       
Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND
页: 1 [2]
查看完整版本: 如何获取菜单项目的句柄以便触发动作?