用VB制作常居上层的浮动工具箱

2016-02-19 18:27 7 1 收藏

下面图老师小编跟大家分享一个简单易学的用VB制作常居上层的浮动工具箱教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!

【 tulaoshi.com - 编程语言 】

通过形象化的图标,浮动工具箱可以省去用户点击主菜单的麻烦。当鼠标位于其图标上时,在鼠标下方会自动“掉出”一个小标签,说明它的功能。而且常居上层,不会被打开的文件所覆盖。并且可以改变形状及位置,尽可能地减少所占用的桌面面积。
  
  能不能在我们自己的应用程序中使用这种先进手段呢?这里介绍一种用VB来实现的简单方法。主要编程思路是:引用WindowsAPL函数,实现表单常居上层;建立控件数组,通过控件的MouseMove事件,引发注释的弹出和消失。
  
  一、浮动工具箱的可视化实现方法
  
  1.在Form1上放置控件SSRIBBON按钮(因为它本身有三种状态:按下、弹起、禁止使用,大部分图标按钮都是这类按钮)。再放置文本框Text1(也可以用Label控件,但效果会有所不同,稍后会讲到),再放置一个命令按钮Command1。各控件属性见表1(表中只列出一个例子,其它的只要修改相应的属性即可)。
  
  2.单击GP3D1,按ALT+Del剪切,然后按ALT+Insert复制若干,形成控件数组GP3D1(0)、GP3D1(2)、GP3D1(3)……,再如法建立Text1(0)、Text1(1)、Text1(3)……。
  
  3.调整按钮及文本框位置。
  
  在此期间,每一项工作都是必要的,如文本框的Visible值为False,以确保程序启动时不显示文本框,而Enable值为False是为了在运行过程中,文本框不能输入文本。如果使用标签(Label)代替文本框,则不能纵向排列图标按钮,只能横向。因为下面的按钮会盖住Label,但使用Label要比文本框省内存。
  
  为了实现常居上层的效果,必须调用WindowsAPI函数,事实上VB的很多方法都引用于WindowsAPI。这里我们用SetWindowsPos过程,此过程在User.exe中定义,它是Windows系统重要的动态链接库。在VB中引用API函数时,必须在通用声明部分声明注册。声明API函数往往比较麻烦且易出错,比如:
  
  DeclareSubSetWindowPosLib″User″(ByValhwndAsInteger,ByVal
  hWndInsertAfterAsInteger,ByValXAsInteger,ByValYAsInteger,ByVal
  cxAsInteger,ByValcyAsInteger,ByValwFlagsAsInteger)
  
  如果所有的API函数声明都这么输入,效率太低。好在各版本的VB都提供了一个WindowsAPIHelp程序,打开它,搜索SetWindowPos,找到以后点击超文本带出解释,拷贝即可。
  
  二、创建代码在通用声明部分输入下列代码并声明一些常量及全程变量:
  
  DeclareSubsetwindowposLib″User″(ByValhwndAsInteger,ByVal
  hWndInsertAfterAsInteger,ByValXAsInteger,ByValYAsInteger,
  ByValcxAsInteger,ByValcyAsInteger,ByValwFlagsAsInteger)
  
  ConstSWP_NOSIZE=1
  
  ConstSWP_nomove=2
  
  Constflags=SWP_NOSIZEOrSWP_nomove
  
  Consthwnd_topmost=-1
  
  Consthwnd_notopmost=-2
  
  DimIAsInteger
  
  DimBAsInteger
  
  为GP3D1按钮的MouseMove事件添加如下代码,这里仅实现鼠标在其上时注释器弹出、不在其上时隐去的功能,读者可再加一个计时器控件和一些代码,即可很容易地实现鼠标位于其上片刻后注释器弹出的效果,这样就不会出现鼠标“路过”按钮时,注释器即出现的结果了。
  
  SubGP3D1_MouseMove(indexAsInteger,ButtonAsInteger,Shift
  
  AsInteger,XAsSingle,YAsSingle)
  
  I=index′记录下当前鼠标位于哪个按钮上
  
  text1(I).Visible=True″使其弹出
  
  IfBIThen′使其它按钮隐去
  
  text1(B).Visible=False
  
  EndIf
  
  B=I′请好好体会这个变量B的作用
  
  EndSub
  
  为Command1按钮的Click事件添加如下代码:
  
  SubCommand1_Click()
  
  doWhileDoEvents()′用DoEvents()实现空闲循环下的多任务监测
  
  setwindowposhwnd,hwnd_topmost,0,0,0,0,flags′实现常居上层
  
  loop
  
  EndSub
  
  为Command1按钮的MouseMove事件添加如下代码:
  
  SubCommand1_MouseMove(ButtonAsInteger,ShiftAsInteger,X
  
  AsSingle,YAsSingle)
  
  text1(I).Visible=False′鼠标离开按钮区,位于命令按钮上时隐去注释器
  
  EndSub
  
  为Form1的MouseMove事件添加如下代码:
  
  SubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,X
  
  AsSingle,YAsSingle)
  
  text1(I).Visible=False′鼠标离开按钮区,进入表单时隐去注释器
  
  EndSub->

来源:http://www.tulaoshi.com/n/20160219/1617742.html

延伸阅读
XY苹果助手工具箱使用教程 XY苹果助手工具箱怎么使用?XY苹果助手的工具箱页面分为:资料,功能,其他三部分。资料中包含:通讯录,短信,设备信息。下面就跟着pc软件下载站小编来体验一下吧! 功能中包括:XY苹果助手,修复闪退,照片压缩,大文件清理,清理垃圾,关机,重启。其他中包括:XY苹果助手论坛,关于我们,反馈问题。 ...
在微软的很多软件(如WORD)的工具栏中,都采用一种浮动按钮,即正常情况下按钮的图标呈灰色,当鼠标移动到某一按钮上时,该按钮自动向上凸起且变为彩色,并在按钮的右下方有一标签提示该按钮的功能,鼠标移开后又自动还原,这种按钮用VB实现时,方法如下: 1.先用绘图工具作出按钮图标后存盘(如1.BMP),再用图像处理软件将该图标...
标签: word
怎样关闭Word2013中的浮动工具栏   在Word2013文档窗口中,当进行选中文本操作时会在被选中文字的右侧显示浮动工具栏。浮动工具栏中包含有常用的设置文字格式的命令,如设置字体、字号、颜色、居中对齐等命令,以帮助用户方便地设置文字格式,如图1所示。 图1 Word2013浮动工具栏 如果不需要在Word2013文档窗口中显示浮...
标签: 浏览器
搜狗高速浏览器的工具箱是什么 工具箱是搜狗高速浏览器的全新功能,集合多款实用工具,让您畅游网络时刻感受贴心便利。
几何画板工具箱乱码怎么办   最近有朋友反映说几何画板打开工具箱是乱码,这是怎么回事?今天小编就为大家带来几何画板工具箱乱码解决办法,感兴趣的朋友可以一起看看 首先要明确一点,出现乱码的大多数情况都是因为使用了盗版的破解软件,如果想彻底解决乱码问题,请下载正版的几何画板软件,现在几何画板中文官网已经开放Window...

经验教程

235

收藏

76
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部