kk_lee69 发表于 2017-7-19 15:47:22

回复 14# chzj589


    你XP他的可能WIN7效果可能有差

yamakawa 发表于 2017-7-19 16:05:18

回复 16# kk_lee69


    应该无关,,因为我是win10

kk_lee69 发表于 2017-7-19 16:10:06

回复 17# yamakawa


    我想表達的是CJ 我知道她通常用XP 環境寫東西

XP 的環境 通常 跟WIN7或者WIN10 的環境會有些細部不一樣

所以我猜 CJ 因此 無法體會樓主所說的 鼠標消失

yamakawa 发表于 2017-7-19 16:15:33

回复 18# kk_lee69


    哦。。这样啊。。。xp毕竟过时了。。我电脑是新配的,xp驱动不起来,所以很久以前就不用xp了

zghwelcome 发表于 2017-7-19 17:00:06

#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiComboBox.au3>
#include <GuiComboBoxEx.au3>
#include <WinAPI.au3>


$Form1 = GUICreate("Form1", 623, 449)
$Combo1 = GUICtrlCreateCombo("Combo1", 88, 72, 329, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "trst|asfd")

GUISetState(@SW_SHOW)

GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")


While 1
        $nMsg = GUIGetMsg()

        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch
WEnd

Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam);文本变化

        Local $hWndFrom, $iIDFrom, $iCode, $hWndCombo
        $hWndFrom = $ilParam
        $iIDFrom = BitAND($iwParam, 0xFFFF)
        $iCode = BitShift($iwParam, 16)

        ;判断是否是 $Combo1 消息
        If $hWndFrom <> GUICtrlGetHandle($Combo1) Then Return $GUI_RUNDEFMSG
        If $iCode <> $CBN_EDITCHANGE Then Return $GUI_RUNDEFMSG;$CBN_EDITCHANGE      代表 $Combo1 文字发生改变



        ;=================================问题行:
        _GUICtrlComboBox_ShowDropDown($Combo1, True);下拉后,鼠标消失了,如何不让鼠标消失?
        ;=================================问题行:
        _WinAPI_UpdateWindow($Form1)


        Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND
是不是这样

chzj589 发表于 2017-7-19 17:01:24

回复yamakawa


    我想表達的是CJ 我知道她通常用XP 環境寫東西

XP 的環境 通常 跟WIN7或者 ...
kk_lee69 发表于 2017-7-19 16:10 http://www.autoitx.com/images/common/back.gif

是的,我是用XP系统的,因用习惯了。
在ListView进度条的例子就有差别
但如果是这个例子,XP与WIN7是没有差别的。
我刚用WIN7生成EXE,与XP生成是一样的。
你试试看是不是一样?

yamakawa 发表于 2017-7-19 17:28:01

回复 20# zghwelcome


    你加了
      _WinAPI_UpdateWindow($Form1)

这行么?
win10 x64 测试无效。鼠标还是会不见

yamakawa 发表于 2017-7-19 17:29:52

回复 21# chzj589


    你加了msgbox?那就中断了鼠标捕捉。。没什么意义
因为楼主模拟鼠标移动一下,然后显示列表,鼠标也会在

chzj589 发表于 2017-7-19 17:33:19

本帖最后由 chzj589 于 2017-7-19 17:36 编辑

回复 23# yamakawa
我是加了:
Local $aPos = MouseGetPos()
MsgBox(0, "鼠标位置 x, y:", $aPos & ", " & $aPos, 1)
LZ的目地是在下拉框输入时,下拉菜单显示,鼠标也显示

fenhanxue 发表于 2017-7-19 18:03:29

回复 15# tubaba


    是的

fenhanxue 发表于 2017-7-19 18:05:24

回复 25# fenhanxue

combo输入内容时,鼠标光标会隐藏不见,此时如果随便移动下鼠标,光标会重新显示出来。
但是此时如果加一行:
_GUICtrlComboBox_ShowDropDown ( $combo, True )
,那么不管怎么移动鼠标,都无法看到光标。

fenhanxue 发表于 2017-7-19 18:12:05

回复 21# chzj589

额,
    不好意思误会您了,XP系统我刚测试了下,不会出现我所描述的问题,
(即XP下下拉后光标不会隐藏掉。)
故导致你我的问答一直不在一个频道,太年轻太冲动,冲动口不择言,诚挚向您致歉,

fenhanxue 发表于 2017-7-19 18:16:38

回复 20# zghwelcome

加了
_WinAPI_UpdateWindow($Form1)
似乎也没效果

chzj589 发表于 2017-7-19 18:47:23

本帖最后由 chzj589 于 2017-7-19 19:00 编辑

回复 27# fenhanxue
没什么,都是学AU3 
你是用1楼的代码在XP测试没问题?
用1楼的代码,我在XP系统里测试,combo输入内容时,鼠标光标是隐藏不见的。
你用21楼生成的<Combo不让鼠标消失.exe>试看看,那是在WIN7生成的。

fenhanxue 发表于 2017-7-19 20:41:32

回复 29# chzj589


测试有误,XP也是会隐藏掉光标不会显示。。。

21楼的代码没意义,因为程序运行中,不可能用一个msgbox去中断程序的。。。
21楼的msgbox这一行,我用以下代码替换,可以实现不隐藏鼠标,Local $temp_mouse = MouseGetPos()
MouseMove($temp_mouse,$temp_mouse-10,0)
MouseMove($temp_mouse,$temp_mouse,0)

Sleep(1);然后还必须sleep一下,才会出现鼠标,不sleep一下,鼠标还是不会出现,实在难以捉摸原因但是这代码,我觉得应该不是最优的,因为涉及到了mousemove 这个模拟操作。
页: 1 [2] 3
查看完整版本: _GUICtrlComboBox_ShowDropDown 如何不让鼠标消失【已解决】