首页 新闻 会员 周边 捐助

如何是实现窗体的隐藏和显示

0
[已解决问题] 解决于 2009-04-13 09:40

我想实现像visual  studio 那样可隐藏和显示的工具栏,怎么弄啊,知道的朋友请告诉下,最好有代码

ruolinzhanyuan的主页 ruolinzhanyuan | 初学一级 | 园豆:105
提问于:2009-02-24 15:05
< >
分享
最佳答案
0

第三方控件来的,你要吗,加我qq:1050225761, 我发给你

彭存 | 菜鸟二级 |园豆:225 | 2009-02-24 20:47
其他回答(3)
0

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

hzs | 园豆:320 (菜鸟二级) | 2009-03-10 16:49
0

1.Docking的效果可以用第三方控件,Dotmagic等。

2.一般的隐藏,显示效果用Visable+宽高的控制即可。

winzheng | 园豆:8797 (大侠五级) | 2009-03-10 21:47
0

http://sourceforge.net/projects/dockpanelsuite/

5yplan | 园豆:1330 (小虾三级) | 2009-03-10 23:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册