【已解决】如何让鼠标划过指定控件,执行相应的操作!
本帖最后由 xuanfeng1234567 于 2010-12-30 12:52 编辑如上图迅雷七的效果,当我鼠标放在迅雷的悬浮窗上时,就会自动弹出一个提示“下载优先”的提示窗。像这样的效果需要怎么做? 我需要的是当鼠标放在GUI窗体上时,执行一个操作! GUIGetCursorInfo可以获取鼠标经过的控件ID。检测到鼠标经过时,执行你的自定义函数。 是鼠标悬停吗?见水木子的大作 看看GUIGetCursorInfo函数的函数示例,可以实时监控鼠标位置和GUI窗口位置以及尺寸,然后判断鼠标是否在窗体内,有需要的话还能判断窗体是否处于活动状态,然后条件符合则执行你定义的函数 学习了.没试下 那请问如何确定鼠标是在该GUI窗体上呢! 小弟愚笨,大大们能否举例指导!万分感谢! mousehover?有函数 回复 7# netegg
mousehover?? 不明白什么意思喉! 那请问如何确定鼠标是在该GUI窗体上呢! 小弟愚笨,大大们能否举例指导!万分感谢!
xuanfeng1234567 发表于 2010-12-28 23:43 http://www.autoitx.com/images/common/back.gif
命令我记不到那么多,我自己写程序都随时看帮助的哈。
大致你可以这样:
if用GUIGetCursorInfo检测鼠标在你所指定的控件上 and你的窗口处于激活then
_____自定义函数或某些操作
endif 学习学习!{:face (303):} 回复 8# xuanfeng1234567
具体的我也表达不大清楚,hot应该知道吧,hover大体是划过的状态 mousehover
这个可以实现 mousehover 我怎么搜索不到呢? 本帖最后由 飘云 于 2010-12-29 17:20 编辑
回复 1# xuanfeng1234567
很粗糙很简陋,我的思路就是这样,具体自己改进吧
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#NoTrayIcon
Opt("GUIOnEventMode",1)
$main = GUICreate("鼠标检测-Esc键退出窗口",300,300,-1,-1,BitOR($WS_POPUP,$WS_BORDER))
$Label = GUICtrlCreateLabel("",100,100,150,17)
$minfo = GUICtrlCreateLabel("",100,130,150,17)
GUISetOnEvent($GUI_EVENT_CLOSE, "main")
GUISetState()
While 1
Sleep(100)
$mpos = MouseGetPos()
$wpos = WinGetPos($main)
If $mpos>=$wpos And $mpos<=($wpos+$wpos) And $mpos>=$wpos And $mpos<=($wpos+$wpos) And WinActive($main) Then
GUICtrlSetData($Label,"鼠标在窗口内")
Else
GUICtrlSetData($Label,"鼠标不在窗口内")
EndIf
GUICtrlSetData($minfo,"鼠标x:"&$mpos&"鼠标y:"&$mpos)
WEnd
Func main()
Switch @GUI_CtrlId
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
EndFunc
回复 14# 飘云
非常感谢您的代码!非常漂亮我很喜欢。受用受用! 仔细研究! 谢谢!