找回密码
 加入
搜索
楼主: fenhanxue

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

 火.. [复制链接]
发表于 2017-7-19 15:47:22 | 显示全部楼层
回复 14# chzj589


    你XP  他的可能WIN7  效果可能有差
发表于 2017-7-19 16:05:18 | 显示全部楼层
回复 16# kk_lee69


    应该无关,,因为我是win10
发表于 2017-7-19 16:10:06 | 显示全部楼层
回复 17# yamakawa


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

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

所以我猜 CJ 因此 無法體會樓主所說的 鼠標消失
发表于 2017-7-19 16:15:33 | 显示全部楼层
回复 18# kk_lee69


    哦。。这样啊。。。xp毕竟过时了。。我电脑是新配的,xp驱动不起来,所以很久以前就不用xp了
发表于 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
是不是这样
发表于 2017-7-19 17:01:24 | 显示全部楼层
回复  yamakawa


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

XP 的環境 通常 跟WIN7  或者 ...
kk_lee69 发表于 2017-7-19 16:10


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

本帖子中包含更多资源

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

×
发表于 2017-7-19 17:28:01 | 显示全部楼层
回复 20# zghwelcome


    你加了
        _WinAPI_UpdateWindow($Form1)

这行么?
win10 x64 测试无效。鼠标还是会不见
发表于 2017-7-19 17:29:52 | 显示全部楼层
回复 21# chzj589


    你加了msgbox?那就中断了鼠标捕捉。。没什么意义
因为楼主模拟鼠标移动一下,然后显示列表,鼠标也会在
发表于 2017-7-19 17:33:19 | 显示全部楼层
本帖最后由 chzj589 于 2017-7-19 17:36 编辑

回复 23# yamakawa
我是加了:
Local $aPos = MouseGetPos()
MsgBox(0, "鼠标位置 x, y:", $aPos[0] & ", " & $aPos[1], 1)
LZ的目地是在下拉框输入时,下拉菜单显示,鼠标也显示
 楼主| 发表于 2017-7-19 18:03:29 | 显示全部楼层
回复 15# tubaba


    是的
 楼主| 发表于 2017-7-19 18:05:24 | 显示全部楼层
回复 25# fenhanxue

combo输入内容时,鼠标光标会隐藏不见,此时如果随便移动下鼠标,光标会重新显示出来。
但是此时如果加一行:
_GUICtrlComboBox_ShowDropDown ( $combo, True )
,那么不管怎么移动鼠标,都无法看到光标。
 楼主| 发表于 2017-7-19 18:12:05 | 显示全部楼层
回复 21# chzj589

额,
    不好意思误会您了,XP系统我刚测试了下,不会出现我所描述的问题,
(即XP下下拉后光标不会隐藏掉。)
故导致你我的问答一直不在一个频道,太年轻太冲动,冲动口不择言,诚挚向您致歉,
 楼主| 发表于 2017-7-19 18:16:38 | 显示全部楼层
回复 20# zghwelcome

加了
_WinAPI_UpdateWindow($Form1)
似乎也没效果
发表于 2017-7-19 18:47:23 | 显示全部楼层
本帖最后由 chzj589 于 2017-7-19 19:00 编辑

回复 27# fenhanxue
没什么,都是学AU3 
你是用1楼的代码在XP测试没问题?
用1楼的代码,我在XP系统里测试,combo输入内容时,鼠标光标是隐藏不见的。
你用21楼生成的<Combo不让鼠标消失.exe>试看看,那是在WIN7生成的。
 楼主| 发表于 2017-7-19 20:41:32 | 显示全部楼层
回复 29# chzj589


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

21楼的代码没意义,因为程序运行中,不可能用一个msgbox去中断程序的。。。
21楼的msgbox这一行,我用以下代码替换,可以实现不隐藏鼠标,
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一下,鼠标还是不会出现,实在难以捉摸原因
但是这代码,我觉得应该不是最优的,因为涉及到了mousemove 这个模拟操作。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-24 11:05 , Processed in 0.072386 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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