本帖最后由 wangms 于 2015-1-13 15:16 编辑 #include <GuiComboBox.au3>
#include <GUIConstantsEx.au3>
HotKeySet('^z', 'FZ')
; 创建 GUI
Local $hGUI = GUICreate("ComboBox列表展开鼠标问题", 350, 180, -1, 180)
Local $idCombo = GUICtrlCreateCombo("", 5, 4, 282, 50)
Local $idButton1 = GUICtrlCreateButton('赋值', 300, 4, 40, 20)
GUISetState(@SW_SHOW)
; 添加文件
_GUICtrlComboBox_BeginUpdate($idCombo)
_GUICtrlComboBox_AddDir($idCombo, @WindowsDir & "\*.exe")
_GUICtrlComboBox_EndUpdate($idCombo)
_GUICtrlComboBox_SetEditText($idCombo, 'Default')
; 循环到用户退出.
While 1
If $idButton1 = GUIGetMsg() Then _GUICtrlComboBox_SetEditText($idCombo, 'Default_2')
If GUIGetMsg() = $GUI_EVENT_CLOSE Then ExitLoop
Local $sText = _GUICtrlComboBox_GetEditText($idCombo) ;获取编辑框文本
If $sText = '' Then
_GUICtrlComboBox_ShowDropDown($idCombo) ; 折叠下拉列表
Else
_GUICtrlComboBox_SetMinVisible($idCombo, 6) ; 展开下拉列表
_GUICtrlComboBox_ShowDropDown($idCombo, True)
;GUISetState(@SW_SHOWNORMAL, $hGUI )
;WinActivate($hGUI,'' )
;GUICtrlSetState($idCombo, $GUI_FOCUS )
EndIf
WEnd
GUIDelete()
Func FZ()
_GUICtrlComboBox_SetEditText($idCombo, 'Default_3')
EndFunc
上面代码初始运行时,窗口中可看见鼠标移动;当清空编辑框后手工输入字符后,组合框下拉列表展开,这时窗口捕获不到鼠标,看不到鼠标在窗口中移动,请教各位老师这是何故?如何处理才能捕获鼠标?;
(为了测试,还设计了另两种编辑框赋值方式:热键和按钮赋值)
|