现在许多
![](/icons/14514chengxu.gif)
![](/icons/14514de.gif)
窗体都有自动隐藏/显示
![](/icons/14514de.gif)
功能(比如OICQ)
![](/icons/14514dou2.gif)
实现这样
![](/icons/14514de.gif)
功能其实很简单
![](/icons/14514dou.gif)
原理是:判断鼠标是否移到了屏幕
![](/icons/14514de.gif)
最左边或最右边
![](/icons/14514dou.gif)
如果移到了则显示窗体
![](/icons/14514dou.gif)
如果鼠标移开了窗体则隐藏窗体
![](/icons/14514dou2.gif)
在本
![](/icons/14514chengxu.gif)
中
![](/icons/14514dou.gif)
我们将用到GetCursorPos这个API
![](/icons/14514hanshu.gif)
是实现这个功能最重要
![](/icons/14514de.gif)
![](/icons/14514yi.gif)
步
![](/icons/14514dou.gif)
这个
![](/icons/14514hanshu.gif)
![](/icons/14514de.gif)
作用就是获取当前鼠标
![](/icons/14514de.gif)
坐标值
![](/icons/14514dou.gif)
我们可以通过这个值来判断鼠标是否移到了屏幕
![](/icons/14514de.gif)
最边缘.下面我们就开始吧
![](/icons/14514dou2.gif)
新建
![](/icons/14514yi.gif)
窗体
![](/icons/14514dou.gif)
将Form1更名为AutoHide将vbBorderStyle属性设置为4-Fixed ToolWindow这样就不能改变窗体
![](/icons/14514de.gif)
大小
![](/icons/14514dou.gif)
ScaleMode属性设置为2-Po
![](/icons/14514int.gif)
![](/icons/14514dou2.gif)
加入
![](/icons/14514yi.gif)
个TimerControl控件
![](/icons/14514dou.gif)
将Interval
![](/icons/14514de.gif)
值设为1
![](/icons/14514dou2.gif)
再新建
![](/icons/14514yi.gif)
个模块
![](/icons/14514dou.gif)
输入如下代码: Public Declare Function GetCursorPos Lib "user32" lpPo
![](/icons/14514int.gif)
As POINTAPI As Long Type POINTAPI x As Long y As Long End Type 该代码则是用于声明GetCursorPos这个API
![](/icons/14514hanshu.gif)
![](/icons/14514de.gif)
![](/icons/14514dou2.gif)
这个API
![](/icons/14514hanshu.gif)
可以在VB6中自带
![](/icons/14514de.gif)
“API 浏览器”中查找到
![](/icons/14514dou2.gif)
在AutoHide窗体中
![](/icons/14514dou.gif)
输入如下代码: Dim Mouse As POINTAPI '这句代码在声明部分中加入 Private Sub Form_Load AutoHide.Height = Screen.Height '使窗体高度和屏幕高度相同 '调整窗体
![](/icons/14514de.gif)
显示位置 AutoHide.Top = 0 AutoHide.Left = 0 - AutoHide.Width + 50 '使窗体在屏幕
![](/icons/14514de.gif)
最左边显示并显示出
![](/icons/14514yi.gif)
小部分窗体此时为收缩状态 End Sub Private Sub Timer1_Timer a = GetCursorPosMouse If Mouse.x = 0 Then '鼠标移到了屏幕
![](/icons/14514de.gif)
最左边x为屏幕
![](/icons/14514de.gif)
纵坐标
![](/icons/14514dou.gif)
当纵坐标为0时
![](/icons/14514dou.gif)
表示鼠标已经移到了最左边
![](/icons/14514dou.gif)
因此这是最关键
![](/icons/14514de.gif)
![](/icons/14514yi.gif)
步 AutoHide.Left = 0 '使窗体居左显示 End If If Mouse.x > AutoHide.ScaleWidth Then '如果鼠标没有在窗体的上则隐藏窗体.
注意:窗体
![](/icons/14514de.gif)
ScaleMode属性
![](/icons/14514yi.gif)
定要设置为2-Po
![](/icons/14514int.gif)
![](/icons/14514dou.gif)
否则达不到隐藏
![](/icons/14514de.gif)
效果 AutoHide.Left = 0 - AutoHide.Width + 50 '如果前面没有加上50这里也不加上
![](/icons/14514dou2.gif)
End If End Sub 好了
![](/icons/14514dou.gif)
单击F5运行
![](/icons/14514yi.gif)
下就可以看到我们
![](/icons/14514de.gif)
效果了