找回密码
 加入
搜索
查看: 26998|回复: 41

[GUI管理] 如何使gui窗口靠近桌面边缘时自动隐藏?

 火... [复制链接]
发表于 2011-5-25 17:42:20 | 显示全部楼层 |阅读模式
悬赏100金钱已解决
本帖最后由 wsfda 于 2011-7-8 23:38 编辑

各位大大好!最近做个小工具,想让这个工具的窗口当靠近桌面边缘时,想QQ那样自动隐藏,当鼠标在那里时可以自动弹出

求思路或者,例子........

多谢大家了

最佳答案

查看完整内容

[au3]$hForm = GUICreate('My GUI',250,600) GUISetState() While GUIGetMsg() -3 _WinHide($hForm) Sleep(10) WEnd Func _WinHide($Hwnd) $Wp = WinGetPos($hForm) $Mp = MouseGetPos() Select Case $Wp[1] $Wp[1]+$Wp[3]) Then WinMove($Hwnd,"",$Wp[0],3-$Wp[3],$Wp[2],$Wp[3],1) Else WinMove($Hwnd,"",$Wp[0],3,$Wp[2],$Wp[3],1) EndIf Case $Wp[0] >= (@DesktopWidth - $Wp[2]+3) If ($Mp[0] ...
发表于 2011-5-25 17:42:21 | 显示全部楼层
$hForm = GUICreate('My GUI',250,600)
GUISetState()

While GUIGetMsg() <> -3
        _WinHide($hForm)
        Sleep(10)
WEnd

Func _WinHide($Hwnd)
        $Wp = WinGetPos($hForm)
        $Mp = MouseGetPos()
        Select
                Case $Wp[1] <=3
                        If ($Mp[0]<$Wp[0] Or $Mp[0] > $Wp[0]+$Wp[2] or $Mp[1] > $Wp[1]+$Wp[3]) Then
                                WinMove($Hwnd,"",$Wp[0],3-$Wp[3],$Wp[2],$Wp[3],1)
                        Else
                                WinMove($Hwnd,"",$Wp[0],3,$Wp[2],$Wp[3],1)
                        EndIf
                Case $Wp[0] >= (@DesktopWidth - $Wp[2]+3)
                        If ($Mp[0]<$Wp[0] Or $Mp[1] < $Wp[1] Or $Mp[1] > $Wp[1]+$Wp[3]) Then
                                WinMove($Hwnd,"",@DesktopWidth - 3,$Wp[1],$Wp[2],$Wp[3],1)
                        Else
                                WinMove($Hwnd,"",@DesktopWidth - $Wp[2]+3,$Wp[1],$Wp[2],$Wp[3],1)
                        EndIf
        EndSelect
EndFunc

评分

参与人数 1金钱 +50 贡献 +3 收起 理由
wsfda + 50 + 3 忘记加钱了,嘿嘿

查看全部评分

 楼主| 发表于 2011-5-25 18:15:30 | 显示全部楼层
回复 2# 风行者


    没想到这么快就能解决,非常感谢"风行者"
    真的很感谢,谢谢你
发表于 2011-5-25 21:01:55 | 显示全部楼层
好东西,学习下
发表于 2011-5-25 21:12:54 | 显示全部楼层
强帖留名,以便学习
 楼主| 发表于 2011-5-25 21:19:41 | 显示全部楼层
回复 2# 风行者


    不过发现一个小小的缺点,当界面靠近边缘时,界面上的控件,点击后反应不正常,有时候不能触发事件
 楼主| 发表于 2011-5-26 09:39:07 | 显示全部楼层
已经解决了,嘿嘿,消息模式的问题,改为另外一个模式就行了,谢谢你
 楼主| 发表于 2011-5-26 10:27:39 | 显示全部楼层
继续问下,想把我的帖子改为已解决,怎么改不了,帮帮忙
发表于 2011-5-26 15:46:22 | 显示全部楼层
应该有最佳答案选择吧。。
发表于 2011-5-26 17:10:42 | 显示全部楼层
强帖留名,以便学习
 楼主| 发表于 2011-5-26 21:16:36 | 显示全部楼层
回复 9# 偶德


   以前没有发给悬赏贴,现在不知道如何设置已解决,晕啊
 楼主| 发表于 2011-5-26 21:53:11 | 显示全部楼层
已解决,谢谢大家的关注,谢谢
发表于 2011-5-27 07:37:56 | 显示全部楼层
呵呵。。解决了就好。。
发表于 2011-5-27 16:44:45 | 显示全部楼层
这个厉害 一定 要支持
发表于 2011-6-1 14:06:20 | 显示全部楼层
学习一下。。。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-17 14:22 , Processed in 0.083107 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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