找回密码
 加入
搜索
查看: 3405|回复: 7

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

  [复制链接]
发表于 2010-5-18 18:07:38 | 显示全部楼层 |阅读模式
本帖最后由 kxing 于 2010-5-18 21:06 编辑

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

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

 楼主| 发表于 2010-5-18 19:00:46 | 显示全部楼层
有高手能回答下吗!!!!
发表于 2010-5-18 20:29:05 | 显示全部楼层
如果你懂得看帮助文档,那你的问题早就解决了。
#include <GUIComboBox.au3>
_GUICtrlComboBox_Create()
发表于 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

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2010-5-18 21:05:57 | 显示全部楼层
多谢楼上的朋友了....
发表于 2010-6-28 19:28:16 | 显示全部楼层

评分

参与人数 2金钱 -10 贡献 -1 收起 理由
lynfr8 -1
afan -10 警告,禁止纯表情!

查看全部评分

发表于 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
好东西,谢谢元老贡献

评分

参与人数 1威望 +1 贡献 +1 收起 理由
afan + 1 + 1

查看全部评分

发表于 2011-4-7 11:24:10 | 显示全部楼层
强人啊,谢谢分享
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-2 10:24 , Processed in 0.079821 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表