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

2016-02-19 18:27 1 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->

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

延伸阅读
标签: 电脑入门
浮动工具栏是Word2007中一项极具人性化的功能,当Word2007文档中的文字处于选中状态时,如果用户将鼠标指针移到被选中文字的右侧位置,将会出现一个半透明状态的浮动工具栏。该工具栏中包含了常用的设置文字格式的命令,如设置字体、字号、颜色、居中对齐等命令。将鼠标指针移动到浮动工具栏上将使这些命令完全显示,进而可以方便地设置文字格...
XY苹果助手工具箱使用教程 XY苹果助手工具箱怎么使用?XY苹果助手的工具箱页面分为:资料,功能,其他三部分。资料中包含:通讯录,短信,设备信息。下面就跟着pc软件下载站小编来体验一下吧! 功能中包括:XY苹果助手,修复闪退,照片压缩,大文件清理,清理垃圾,关机,重启。其他中包括:XY苹果助手论坛,关于我们,反馈问题。 ...
标签: word
怎样关闭Word2013中的浮动工具栏   在Word2013文档窗口中,当进行选中文本操作时会在被选中文字的右侧显示浮动工具栏。浮动工具栏中包含有常用的设置文字格式的命令,如设置字体、字号、颜色、居中对齐等命令,以帮助用户方便地设置文字格式,如图1所示。 图1 Word2013浮动工具栏 如果不需要在Word2013文档窗口中显示浮...
在Visual C++自动生成的MFC框架应用程序中,当浮动工具条被拖离主框架窗口后,一般都会在工具条的右上角有一个"关闭"按钮,应该说这个按钮完全是按照Windows应用程序的用户界面(UI)设计规范而设计的,也就是说所有的窗口都应该有一个地方让用户可以关闭这个窗口。但是有的开发人员偏偏提出来不想要这个"关闭"按钮。本实例通过自定一个扩...
标签: 浏览器
搜狗高速浏览器的工具箱是什么 工具箱是搜狗高速浏览器的全新功能,集合多款实用工具,让您畅游网络时刻感受贴心便利。

经验教程

549

收藏

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