kxing 发表于 2010-5-18 18:07:38

[已解决]请问如何检测Combo有键盘输入

本帖最后由 kxing 于 2010-5-18 21:06 编辑

请问高手们怎样能检测出Combo控件有输入行为呢
当然,上下光标选择下拉项目不包括在内!!!
多谢高手回答!!!!

kxing 发表于 2010-5-18 19:00:46

有高手能回答下吗!!!!

pusofalse 发表于 2010-5-18 20:29:05

如果你懂得看帮助文档,那你的问题早就解决了。
#include <GUIComboBox.au3>
_GUICtrlComboBox_Create()

lynfr8 发表于 2010-5-18 20:54:14

确实帮助文件里_GUICtrlComboBox_Create()函数有示例
这里根据楼主的要求精简一下原代码,如下:#include <GUIComboBox.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
Global $hCombo, $hGUI
$hGUI = GUICreate("检测Combo有键盘输入", 400, 96)
$hCombo = _GUICtrlComboBox_Create($hGUI, "", 2, 5, 396, 296)
GUISetState()
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
        Local $hWndFrom, $iIDFrom, $iCode, $hWndCombo
        If Not IsHWnd($hCombo) Then $hWndCombo = GUICtrlGetHandle($hCombo)
        $hWndFrom = $ilParam
        $iIDFrom = BitAND($iwParam, 0xFFFF)
        $iCode = BitShift($iwParam, 16)
        Switch $hWndFrom
                Case $hCombo, $hWndCombo
                        Switch $iCode
                                Case $CBN_EDITUPDATE
                                        MsgBox(0, 0, '检测Combo有键盘输入!')
                        EndSwitch
        EndSwitch
        Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND

kxing 发表于 2010-5-18 21:05:57

多谢楼上的朋友了....

wuweixian 发表于 2010-6-28 19:28:16

{:face (55):}

xsjtxy 发表于 2010-6-28 21:56:08


#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$hGUI = GUICreate("检测键盘输入", 400, 96)

$hCombo = GUICtrlCreateInput("1", 2, 5, 396, 30)
$t1 = GUICtrlRead($hCombo)
GUISetState()

GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

GUIDelete()

Func WM_COMMAND()
$t = GUICtrlRead($hCombo)
if $t <> $t1 then msgbox(0,"现在输入的数据","(" & $t & ")")
$t1 = GUICtrlRead($hCombo)
EndFunc
好东西,谢谢元老贡献

zouyingj 发表于 2011-4-7 11:24:10

强人啊,谢谢分享
页: [1]
查看完整版本: [已解决]请问如何检测Combo有键盘输入