找回密码
 加入
搜索
查看: 11295|回复: 30

[AU3基础] 【已解决】如何让鼠标划过指定控件,执行相应的操作!

 火... [复制链接]
发表于 2010-12-28 17:21:42 | 显示全部楼层 |阅读模式
本帖最后由 xuanfeng1234567 于 2010-12-30 12:52 编辑


如上图迅雷七的效果,当我鼠标放在迅雷的悬浮窗上时,就会自动弹出一个提示“下载优先”的提示窗。像这样的效果需要怎么做? 我需要的是当鼠标放在GUI窗体上时,执行一个操作!

本帖子中包含更多资源

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

×
发表于 2010-12-28 17:24:51 | 显示全部楼层
GUIGetCursorInfo  可以获取鼠标经过的控件ID。检测到鼠标经过时,执行你的自定义函数。
发表于 2010-12-28 17:40:39 | 显示全部楼层
是鼠标悬停吗?见水木子的大作
发表于 2010-12-28 18:18:44 | 显示全部楼层
看看GUIGetCursorInfo函数的函数示例,可以实时监控鼠标位置和GUI窗口位置以及尺寸,然后判断鼠标是否在窗体内,有需要的话还能判断窗体是否处于活动状态,然后条件符合则执行你定义的函数
发表于 2010-12-28 18:57:39 | 显示全部楼层
学习了.没试下
 楼主| 发表于 2010-12-28 23:43:16 | 显示全部楼层
那请问如何确定鼠标是在该GUI窗体上呢! 小弟愚笨,大大们能否举例指导!万分感谢!
发表于 2010-12-29 03:28:31 | 显示全部楼层
mousehover?有函数
 楼主| 发表于 2010-12-29 11:41:22 | 显示全部楼层
回复 7# netegg
mousehover?? 不明白什么意思喉!
发表于 2010-12-29 11:46:50 | 显示全部楼层
那请问如何确定鼠标是在该GUI窗体上呢! 小弟愚笨,大大们能否举例指导!万分感谢!
xuanfeng1234567 发表于 2010-12-28 23:43


命令我记不到那么多,我自己写程序都随时看帮助的哈。
大致你可以这样:
  if  用GUIGetCursorInfo检测鼠标在你所指定的控件上 and  你的窗口处于激活  then
_____自定义函数或某些操作
  endif
发表于 2010-12-29 11:52:10 | 显示全部楼层
学习学习!
发表于 2010-12-29 12:17:05 | 显示全部楼层
回复 8# xuanfeng1234567

具体的我也表达不大清楚,hot应该知道吧,hover大体是划过的状态
发表于 2010-12-29 14:03:24 | 显示全部楼层
mousehover

这个可以实现
 楼主| 发表于 2010-12-29 15:06:20 | 显示全部楼层
mousehover   我怎么搜索不到呢?
发表于 2010-12-29 16:18:07 | 显示全部楼层
本帖最后由 飘云 于 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[0]>=$wpos[0] And $mpos[0]<=($wpos[0]+$wpos[2]) And $mpos[1]>=$wpos[1] And $mpos[1]<=($wpos[1]+$wpos[3]) And WinActive($main) Then
                GUICtrlSetData($Label,"鼠标在窗口内")
        Else
                GUICtrlSetData($Label,"鼠标不在窗口内")
        EndIf
        GUICtrlSetData($minfo,"鼠标x:"&$mpos[0]&"鼠标y:"&$mpos[1])
WEnd

Func main()
        Switch @GUI_CtrlId
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch
EndFunc

评分

参与人数 1金钱 +20 收起 理由
水木子 + 20

查看全部评分

 楼主| 发表于 2010-12-29 17:49:06 | 显示全部楼层
回复 14# 飘云

非常感谢您的代码!  非常漂亮  我很喜欢。  受用受用!   仔细研究! 谢谢!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-16 17:24 , Processed in 0.081059 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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