wsfda 发表于 2011-5-25 17:42:20

如何使gui窗口靠近桌面边缘时自动隐藏?

本帖最后由 wsfda 于 2011-7-8 23:38 编辑

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

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

多谢大家了

风行者 发表于 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 <=3
                        If ($Mp<$Wp Or $Mp > $Wp+$Wp or $Mp > $Wp+$Wp) Then
                                WinMove($Hwnd,"",$Wp,3-$Wp,$Wp,$Wp,1)
                        Else
                                WinMove($Hwnd,"",$Wp,3,$Wp,$Wp,1)
                        EndIf
                Case $Wp >= (@DesktopWidth - $Wp+3)
                        If ($Mp<$Wp Or $Mp < $Wp Or $Mp > $Wp+$Wp) Then
                                WinMove($Hwnd,"",@DesktopWidth - 3,$Wp,$Wp,$Wp,1)
                        Else
                                WinMove($Hwnd,"",@DesktopWidth - $Wp+3,$Wp,$Wp,$Wp,1)
                        EndIf
        EndSelect
EndFunc

wsfda 发表于 2011-5-25 18:15:30

回复 2# 风行者


    没想到这么快就能解决,非常感谢"风行者"
    真的很感谢,谢谢你

502762378 发表于 2011-5-25 21:01:55

好东西,学习下

infotechewen 发表于 2011-5-25 21:12:54

强帖留名,以便学习

wsfda 发表于 2011-5-25 21:19:41

回复 2# 风行者


    不过发现一个小小的缺点,当界面靠近边缘时,界面上的控件,点击后反应不正常,有时候不能触发事件

wsfda 发表于 2011-5-26 09:39:07

已经解决了,嘿嘿,消息模式的问题,改为另外一个模式就行了,谢谢你

wsfda 发表于 2011-5-26 10:27:39

继续问下,想把我的帖子改为已解决,怎么改不了,帮帮忙

偶德 发表于 2011-5-26 15:46:22

应该有最佳答案选择吧。。

cj3237501 发表于 2011-5-26 17:10:42

强帖留名,以便学习

wsfda 发表于 2011-5-26 21:16:36

回复 9# 偶德


   以前没有发给悬赏贴,现在不知道如何设置已解决,晕啊

wsfda 发表于 2011-5-26 21:53:11

已解决,谢谢大家的关注,谢谢

偶德 发表于 2011-5-27 07:37:56

呵呵。。解决了就好。。

user11 发表于 2011-5-27 16:44:45

这个厉害 一定 要支持

浪迹红客 发表于 2011-6-1 14:06:20

学习一下。。。。。
页: [1] 2 3
查看完整版本: 如何使gui窗口靠近桌面边缘时自动隐藏?