本帖最后由 smooth 于 2021-10-6 21:32 编辑
input输入框接受回车,一种是注册快捷键:
Local $Form1_AccelTable[1][2] = [["{ENTER}", $Input]]
GUISetAccelerators($Form1_AccelTable)
GUICtrlSetOnEvent($Input, '_abc')
这种方法有个问题,就是首次按下回车键,会执行两次。
另一种方法据说是回调,代码如下:
#include <WinAPIEx.au3>
Global $hInput1_CallBack = DllCallbackRegister("_Input_CallBackFunc", "int", "hWnd;uint;wparam;lparam")
Global $pInput1_CallBack = DllCallbackGetPtr($hInput1_CallBack)
Global $hOInput1_CallBack = _WinAPI_SetWindowLong(GUICtrlGetHandle($Input), $GWL_WNDPROC, $pInput1_CallBack)
GUICtrlSetOnEvent($Input, '_abc')
这种方法的缺陷是,如果输入框为空,按回车则没有反应,或者输入框的内容如果没有发生变化,再次按下回车键,也没有响应。
|