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 这个模拟操作。