大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> VB功能扩展

VB功能扩展

时间: 2021-07-31 作者:daque

     咱们在安排一个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 ’暂时所运转的vb private thesecontrols as object private control as onject ’控件东西变量 private allheight as long private allwidth as long private minleft as long ’标志最左边境值 public sub afterclick() minleft=99999 ’设一极大初值 set therecontrols = vbinstance.activeproject.ac - tiveform.selectedcontroltemplates for each control in thesecontrols if control.properties("left")<minleft then allheight=control.properties("height") allwidth=control.properties("width") minleft=control.properties("left") end if next for each control in thesecontrols control.properties("height")=allheight control.properties("width")=allwidth next end sub 再设置一个新类,属性树立如次: name="alignment";creatable=true;public=true dim thisinstance as object dim hsizealignmenu as object dim hsizealignhandler as new hsizealign dim hsizeconnectcookie as long sub connectaddin(vbinstance as object) ’介入菜单项,举行贯穿 set thisinstance=vbinstance set hsizealignmenu=thisinstance.addinmenu. menuitems.add("hsize alignment") set hsizealignhandler.vbinstance=thisinstance hsizeconnectcookie=hsizealignmenu.connectevents (hsizealignhandler) end sub sub disconnectaddin(mode as integer) ’废除贯穿,简略菜单项 hsizealignmenu.disconnectevents hsizeconnect-cookie thisinstance.addinmenu.menuitems.remove hsizealignmenu end sub 再介入一个module,输出以次步调: declare function writeprivateprofilestring lib "kernel"(byval appname$,byval keyname$,byval keydefault$,byval filename$) declare function getprivateprofilestring lib "kernel"(byval appname$,byval keyname$,byval keydefault$,byval returnstring$,by val numbytes as integer,byval filename$) ’之上证明可用api text viewer正片 sub main() dim returnstring as string section$="add-ins16" returnstring=string$(255,chr$(0)) errcode=getprivateprofilestring(section$, "exam.alignment","notfound",returnstring,len(returnstring)+1,"vb.ini") if left(returnstring,instr(returnstring,chr(0))-1)="notfound"then errcode=writeprivateprofilestring%(section$,"exam.alignment","0","vb.ini") end if end sub ’exam.alignment里,\exam”为名目名,\alignment”为与add-in菜单贯穿的类名。之上步调编写翻译运转后,在vb菜单add-ins里采用add-in manager,将弹出一对话框,采用exam. alignment畏缩出,add-ins菜单里就多了一项hsize alignment;运用时先采用所需陈设控件 ,而后选此菜单项即可。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.