VB功能扩展

2016-02-19 14:53 7 1 收藏

下面,图老师小编带您去了解一下VB功能扩展,生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - 编程语言 】

  我们在设计一个VB窗体时,常常放上许多控件,为了使这些控件看上去整整齐齐,我们不得不设置一大堆Left、Top、Height、Width属性,您是否已经感到厌烦并想转向Powerbuilder或Delphi等别急,让我们现在就来扩展一下VB的功能。

  VB4.0提供了一个新功能:Add-Ins,利用这一功能我们就可以把自己的程序加到VB4的系统菜单Add-Ins里去,作为VB的扩展功能。我们设计的程序将具有以下功能:选取窗体上某些控件后,通过菜单选取,使它们大小相同、间距相同、边缘对齐等等。有了这些功能,我们设计界面时就能节省大量时间,大大提高工作效率。限于篇幅,这里只介绍其中一个功能:使所选取控件从左到右大小相同。理解了这段程序,其它功能就很容易实现了。首先建一个新项目:alignment.mark,不需要任何窗体,在Tools菜单里选Project Options, 将 Project Name设为Exam,将Start Mode设为Object Application后退出。然后在菜单Ins ert里选取ClassModule,建立一个新类,属性设置如下:

  Name=HSizeAlign;Creatable=False;Public=True 输入以下程序:

  

Public VBInstance As Object ’当前所运行的VBPrivate TheseControls As ObjectPrivate Control As Onject ’控件对象变量Private AllHeight As LongPrivate AllWidth As LongPrivate MinLeft As Long ’标记最左边界值Public Sub AfterClick()MinLeft=99999 ’设一极大初值Set ThereControls = VBInstance.ActiveProject.Ac - tiveForm.SelectedControlTemplatesFor Each Control In TheseControlsIf Control.Properties(Left)<MinLeft ThenAllHeight=Control.Properties(Height)AllWidth=Control.Properties(Width)MinLeft=Control.Properties(Left)End IfNextFor Each Control In TheseControlsControl.Properties(Height)=AllHeightControl.Properties(Width)=AllWidthNextEnd Sub

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  再定义一个新类,属性设置如下:

  

Name=Alignment;Creatable=True;Public=TrueDim ThisInstance As ObjectDim HSizeAlignMenu As ObjectDim HSizeAlignHandler As New HSizeAlignDim HSizeConnectCookie As LongSub ConnectA n(VBInstance As Object)’加入菜单项,进行连接Set ThisInstance=VBInstanceSet HSizeAlignMenu=ThisInstance.AddinMenu.MenuItems.Add(HSize Alignment)Set HSizeAlignHandler.VBInstance=ThisInstanceHSizeConnectCookie=HSizeAlignMenu.ConnectEvents(HSizeAlignHandler)End SubSub DisconnectAddIn(Mode As Integer)’解除连接,删除菜单项HSizeAlignMenu.DisconnectEvents HSizeConnect-CookieThisInstance.AddinMenu.MenuItems.Remove HSizeAlignMenuEnd Sub再加入一个Module,输入以下程序:Declare Function WritePrivateProfileString LibKERNEL(ByVal AppName$,ByVal KeyName$,ByVal keydefault$,ByVal FileName$)Declare Function GetPrivateProfileString LibKERNEL(ByVal AppName$,ByVal KeyName$,ByVal keydefault$,ByVal ReturnString$,ByVal NumBytes As Integer,ByVal FileName$)’以上说明可用API Text Viewer拷贝Sub Main()Dim ReturnString As StringSection$=Add-Ins16ReturnString=String$(255,Chr$(0))ErrCode=GetPrivateProfileString(Section$,Exam.Alignment,NotFound,ReturnString,Len(ReturnString)+1,VB.INI)If Left(ReturnString,InStr(ReturnString,Chr(0))-1)=NotFoundThenErrCode=WritePrivateProfileString%(Section$,Exam.Alignment,0,VB.INI)End IfEnd Sub

  Exam.Alignment里,Exam为项目名,Alignment为与Add-In菜单连接的类名。以上程序编译运行后,在VB菜单Add-Ins里选取Add-In Manager,将弹出一对话框,选取Exam. Alignment后退出,Add-Ins菜单里就多了一项HSize Alignment;使用时先选取所需排列控件,然后选此菜单项即可。本程序的运行环境为:VB4.0,Windows3.1;486 DX2/66 8M。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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

延伸阅读
标签: PS PS教程
说到Photoshop,很多人感觉它越来越强大了,也越来越慢了。的确,很多人只是用到它部分功能,还有很多基本用不上的功能占据着电脑资源,使它越来越慢。如果我们将Photoshop 和Bridge一起用的话,切换起来极不方便。于是,在新版的Photoshop中,出现了内置迷你版的Bridge。它与Adobe Bridge进行信息交换,满足了我们最常用的功能,在需要的时...
萝卜家园一键还原高级和扩展功能 除了简便易操作的一键备份和还原功能,本程序还具有高级增强扩展功能,例如设置启动密码、创建防删除文件夹、隐藏备份分区、设置热键启动、重建主引导记录、一键重装系统等等。 1、 启用超级模块,能在系统崩溃时DOS状态下恢复系统,建议启用。 超级模块允许用户自定义系统备份文件夹的属性,可...
嘿嘿,看到这个题目,想必吓了一大跳吧,或者是摆出一副不相信的表情?不用着急,请听我慢慢道来。 话说这个VB6,很是无耻,居然内置了支持Unicode的功能,也就是说,当你读入一个字符串时,它根据本地缺省语言的对应关系将之转换为Unicode,输出时,再从Unicode转换为本地编码。一方面,它当然方便啦,随便出个什么语言的版本都好方便的,...
一、方法概述 为了在屏幕上模拟打印效果,我们使用VB的一个窗体来模拟一张打印纸。在VB中,每一个窗体都有一个PrintForm方法。使用PrintForm方法可以把一个窗体的内容完全一样地通过打印机打印出来。由于PrintForm方法在打印窗体内容的时候,对于窗体内的文字和图形都是同样地打印。所以通过简单的编程,使用PrintForm方法可以非常方便地实...
在API文本浏览器里,当我们在搜索栏输入任意字母,“可用项”里以该字母开头的项目以高亮显示以引起我们注意该项是不是我们所需的。象这样的功能一切提供搜索选项的程序都应该具备。以下例子采用SendMessage函数实现这一技术。 请给标准工程添加ListBox和TextBox控件各一个,其各项属性均取默认值,然后将下列代码拷贝到你的工程: ...

经验教程

456

收藏

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