频道栏目
首页 > 资讯 > 公共基础 > 正文

如何实现窗体的自动隐藏显示功能

10-03-30        来源:[db:作者]  
收藏   我要投稿
 现在许多程序的窗体都有自动隐藏/显示的功能(比如OICQ)。 实现这样的功能其实很简单,原理是:判断鼠标是否移到了屏幕的最左边或最右边,如果移到了则显示窗体,如果鼠标移开了窗体则隐藏窗体。在本程序中,我们将用到GetCursorPos这个API函数?是实现这个功能最重要的一步 ,这个函数的作用就是获取当前鼠标的坐标值,我们可以通过这个值来判断鼠标是否移到了屏幕的最边缘。下面我们就开始吧。 新建一窗体,将Form1更名为AutoHide?将vbBorderStyle属性设置为4-Fixed ToolWindow?这样就不能改变窗体的大小 ,ScaleMode属性设置为2-Point。加入一个Timer控件,将Interval的值设为1。再新建一个模块,输入如下代码: Public Declare Function GetCursorPos Lib "user32" ?lpPoint As POINTAPI  As Long Type POINTAPI x As Long y As Long End Type 该代码则是用于声明GetCursorPos这个API函数的。这个API函数可以在VB6中自带的“API 浏览器”中查找到。 在AutoHide窗体中,输入如下代码: Dim Mouse As POINTAPI 这句代码在声明部分中加入 Private Sub Form_Load?  AutoHide.Height = Screen.Height 使窗体高度与屏幕高度相同 调整窗体的显示位置 AutoHide.Top = 0 AutoHide.Left = ?0 - AutoHide.Width  + 50 使窗体在屏幕的最左边显示并显示出一小部分窗体?此时为收缩状态 End Sub Private Sub Timer1_Timer?  a = GetCursorPos?Mouse  If Mouse.x = 0 Then 鼠标移到了屏幕的最左边?x为屏幕的纵坐标,当纵坐标为0时,表示鼠标已经移到了最左边,因此这是最关键的一步  AutoHide.Left = 0 使窗体居左显示 End If If Mouse.x > AutoHide.ScaleWidth Then 如果鼠标没有在窗体之上则隐藏窗体?注意:窗体的ScaleMode属性一定要设置为2-Point,否则达不到隐藏的效果  AutoHide.Left = ?0 - AutoHide.Width  + 50 如果前面没有加上50?这里也不加上。 End If End Sub 好了,单击F5运行一下就可以看到我们的效果了。
相关TAG标签
上一篇:用VB读取和控制Windows的中文输入法
下一篇:用DDE实现窗体防止运行多个实例并传递命令
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站