微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题如何实现窗体的自动隐藏\显示功能
栏目软件世界
作者杜伟
发布2001年15期
  现在许多程序的窗体都有自动隐藏/显示的功能(比如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运行一下就可以看到我们的效果了。