现在许多程序的窗体都有自动隐藏/显示的功能(比如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 = getcursorposmouse 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运行一下就可以看到我们的效果了。