找回密码
 加入
搜索
查看: 8512|回复: 39

[GUI管理] _GUICtrlComboBox_ShowDropDown 如何不让鼠标消失【已解决】

 火.. [复制链接]
发表于 2017-7-19 12:15:39 | 显示全部楼层 |阅读模式
本帖最后由 fenhanxue 于 2017-7-25 14:18 编辑

简化后的模型代码如下:
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiComboBox.au3>
#include <GuiComboBoxEx.au3>

$Form1 = GUICreate("Form1", 623, 449)
$Combo1 = GUICtrlCreateCombo("Combo1", 88, 72, 329, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))

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);下拉后,鼠标消失了,如何不让鼠标消失?
        ;=================================问题行:
        
        
        
        Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND
想实现的效果是:
在combo里输入任意文本,combo会自动打开下拉框,但是实测过程中,发现出现下拉框的时候,鼠标隐藏了,想知道如何不隐藏掉鼠标?


即如何不让这个鼠标隐藏:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-7-19 13:01:03 | 显示全部楼层
本帖最后由 chzj589 于 2017-7-19 15:09 编辑

回复 1# fenhanxue

不好意思,打扰了。可能我不理解你的提问。
 楼主| 发表于 2017-7-19 13:15:57 | 显示全部楼层
本帖最后由 fenhanxue 于 2017-7-19 13:17 编辑

回复 2# chzj589


    我说的是:
出现下拉框之后,鼠标的图标会自动隐藏掉,我不想要自动隐藏鼠标。
跟你回复我的函数解析似乎没任何关联
发表于 2017-7-19 13:37:33 | 显示全部楼层
回复 1# fenhanxue


    好像没办法。。。。但是好像不是
                _GUICtrlComboBox_ShowDropDown($Combo1, True);
  的锅。。

  而是CBN_EDITCHANGE 的问题。。。我在windows的运行界面试过,输入字符的瞬间,光标也会消失,但是差别是,过一会就会出现,,而用au3写的一直消失,不出现。。。

坐等高手
发表于 2017-7-19 13:40:10 | 显示全部楼层
自带帮助文件。_GUICtrlComboBox_AutoComplete.au3。在输入的时候也会消失,但是也是过一会就会出现,,尝试加入                _GUICtrlComboBox_ShowDropDown($Combo1, True);
。鼠标再也不见了。。。。。
发表于 2017-7-19 13:50:18 | 显示全部楼层
本帖最后由 chzj589 于 2017-7-19 15:08 编辑

回复 3# fenhanxue
  不好意思,打扰了。可能我不理解你的提问。
 楼主| 发表于 2017-7-19 13:59:18 | 显示全部楼层
回复 6# chzj589


    。。。
我要的不是展开或折叠下拉列表!
我要的是展开下拉列表,并且不隐藏鼠标(光标)!!!

不隐藏鼠标(光标)!!!
不隐藏鼠标(光标)!!!
不隐藏鼠标(光标)!!!
不隐藏鼠标(光标)!!!
不隐藏鼠标(光标)!!!
 楼主| 发表于 2017-7-19 14:05:20 | 显示全部楼层
回复 5# yamakawa


    尝试过不注册消息的模式,鼠标是不会消失的。而采用注册消息模式,则鼠标会消失掉。
目前采用的办法为:
;模拟移动一下鼠标
Local $temp_mouse = MouseGetPos()
MouseMove($temp_mouse[0],$temp_mouse[1]-10,0)
MouseMove($temp_mouse[0],$temp_mouse[1],0)

Sleep(1);然后还必须sleep一下,才会出现鼠标,不sleep一下,鼠标还是不会出现,实在难以捉摸原因
                                                        
                                                        
_GUICtrlComboBox_ShowDropDown($temp_hwnd, True)
目前采用的这办法,原理我自己都没搞懂,尤其是为什么要sleep 一下,不sleep 就不会显示光标,写了sleep就会显示
 楼主| 发表于 2017-7-19 14:12:08 | 显示全部楼层
回复 5# yamakawa


    模拟鼠标移动,是因为实测过程中发现,光标定位到combo后,若不移动鼠标,鼠标也隐藏,同时combo上会出现定位光标。此时若移动一下鼠标,则鼠标的图标也会重新出现
发表于 2017-7-19 14:15:35 | 显示全部楼层
回复 8# fenhanxue


    这也看出不是showdropdown的锅了。。CBN_EDITCHANGE 就是移动一下鼠标就出现。或者过一会就自动出现。。。但是不理解的是,为什么加上showdropdown。。。就变成一直不出现了
发表于 2017-7-19 14:31:28 | 显示全部楼层
本帖最后由 chzj589 于 2017-7-19 15:08 编辑
回复  chzj589


    。。。
我要的不是展开或折叠下拉列表!
我要的是展开下拉列表,并且不隐藏鼠标 ...
fenhanxue 发表于 2017-7-19 13:59

差不多是这样子,多了个MsgBox,
不好意思,打扰了。可能我不理解你的提问。
发表于 2017-7-19 14:36:04 | 显示全部楼层
我先
        _GUICtrlComboBox_SetExtendedUI ( $g_idCombo, True )
然后
删掉showdropdown。
用  Send('{UP}')
也能弹出列表。。但是。。纠结了。。。鼠标还是不见。。
 楼主| 发表于 2017-7-19 14:49:02 | 显示全部楼层
回复 11# chzj589


    大神还请移驾吧,你答复的跟我提问的完全是两码事情,大神的世界,弱菜表示跟不上节奏
发表于 2017-7-19 14:59:31 | 显示全部楼层
回复  chzj589


    大神还请移驾吧,你答复的跟我提问的完全是两码事情,大神的世界,弱菜表示跟不上 ...
fenhanxue 发表于 2017-7-19 14:49

不好意思,打扰了。可能我不理解你的提问。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-7-19 15:14:55 | 显示全部楼层
楼主的意思是combo输入内容时,鼠标光标会隐藏不见. 期待的结果是光标一直显示
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-18 16:10 , Processed in 0.079740 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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