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)
页: 1 2 [3]
查看完整版本: 接上一次讨论,下拉框获取焦点问题[已解决]