kk_lee69
发表于 2017-6-6 16:39:56
回复 30# heroxianf
老實 說 我執行了29樓的程式碼我完全看不出 哪邊有 不一樣的效果
有虛線 跟沒有虛線的問題嗎??
heroxianf
发表于 2017-6-6 16:57:51
回复 31# kk_lee69
你给我的代码里我这里运行右键单击一下并没有对下拉控件获取焦点,没有反应。
kk_lee69
发表于 2017-6-6 17:04:45
回复 32# heroxianf
$Info = GUIGetCursorInfo($hGUI)
If $Info = $idComboBox1 Or $Info = $idComboBox2 And _IsPressed(2) Then
GUICtrlSetState($Info, $GUI_FOCUS)
;~ _GUICtrlComboBox_ShowDropDown($Info, True)
GUICtrlSetState($Info, $GUI_FOCUS)
EndIf
29樓的 有這段 跟沒有這段 我這邊跑起來都一樣差別是甚麼??
heroxianf
发表于 2017-6-6 17:39:56
回复 33# kk_lee69
和你的代码对比一下 ,29楼对下拉控件右键点击一下,获取到控件焦点,然后滑动鼠标轮可以选择菜单; 这个功能只是把我1楼的鼠标滑过获取下拉控件焦点,使用鼠标中键选择菜单是一样的。
我只是想通过右键点击获取焦点代替鼠标滑过获取焦点,防止操作者晃动鼠标带来不必要的后果。
lin6051
发表于 2017-6-11 14:01:15
回复 34# heroxianf
刚 看了下GUIGetCursorInfo 直接用 $Info就可以了 不用ispressed
#include <GUIConstantsEx.au3>
#include <GuiComboBox.au3>
Local $hGUI = GUICreate("ComboBox", 300, 200)
Local $idComboBox1 = GUICtrlCreateCombo("test1", 10, 10, 185, 20, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL, $CBS_DROPDOWNLIST))
Local $idComboBox2 = GUICtrlCreateCombo("中文1", 10, 50, 185, 20, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL, $CBS_DROPDOWNLIST))
GUICtrlSetData($idComboBox1, "test2|test3|test4", "test4")
GUICtrlSetData($idComboBox2, "中文2|中文3|中文4", "中文4")
GUISetState(@SW_SHOW, $hGUI)
While 1
$Info = GUIGetCursorInfo($hGUI)
If $Info = $idComboBox1 Or $Info = $idComboBox2 And $Info Then
;_GUICtrlComboBox_ShowDropDown($Info, True)
GUICtrlSetState($Info, $GUI_FOCUS)
EndIf
Switch GUIGetMsg()
Case -3
exit
EndSwitch
WEnd
GUIDelete($hGUI)