说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

一劳永逸让VB自动改变控件大小

HTML文档下载 WORD文档下载 PDF文档下载
一劳永逸让VB自动改变控件大小


深圳市东门茂业百货11楼 邓 勇
 当窗体大小改变时,如何动态的改变控件的大小是许多VB 程序员头痛的事。有的人设置窗体Resizable 但却不改变控件的大小;有的人则根据控件的绝对位置与窗口大小相加减的办法来重新定位控件与改变大小,这种办法比较繁琐,且不可重用;当然也有人则限定窗口干脆不让改变。有没有一种简便易行的办法?答案是肯定的,下面给出一个一劳永逸的办法,源程序如下:

Option Explicit
Private FormOldWidth As Long
  '保存窗体的原始宽度
Private FormOldHeight As Long
  '保存窗体的原始高度

'在调用ResizeForm前先调用本函数
Public Sub ResizeInit(FormName As Form)
  Dim Obj As Control
  FormOldWidth = FormName.ScaleWidth
  FormOldHeight = FormName.ScaleHeight
  On Error Resume Next
  For Each Obj In FormName
   Obj.Tag = Obj.Left & " " & Obj.Top & " " _
      & Obj.Width & " " & Obj.Height & " "
  Next Obj
  On Error GoTo 0
End Sub

'按比例改变表单内各元件的大小,在调用ReSizeForm前先调用ReSizeInit函数
Public Sub ResizeForm(FormName As Form)
  Dim Pos(4) As Double
  Dim i As Long, TempPos As Long, StartPos As Long
  Dim Obj As Control
  Dim ScaleX As Double, ScaleY As Double

  ScaleX = FormName.ScaleWidth / FormOldWidth
  '保存窗体宽度缩放比例
  ScaleY = FormName.ScaleHeight / FormOldHeight
  '保存窗体高度缩放比例
  On Error Resume Next
  For Each Obj In FormName
   StartPos = 1
   For i = 0 To 4
   '读取控件的原始位置与大小

    TempPos = InStr(StartPos, Obj.Tag, " ", vbTextCompare)
    If TempPos > 0 Then
     Pos(i) = Mid(Obj.Tag, StartPos, TempPos - StartPos)
     StartPos = TempPos + 1
    Else
     Pos(i) = 0
    End If
    '根据控件的原始位置及窗体改变大小的比例对控件重新定位与改变大小
    Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, _
        Pos(2) * ScaleX, Pos(3) * ScaleY
   Next i
  Next Obj
  On Error GoTo 0
End Sub

Private Sub Form_Load()
  Call ResizeInit(Me) '在程序装入时必须加入
End Sub

Private Sub Form_Resize()
  Call ResizeForm(Me) '确保窗体改变时控件随之改变
End Sub

  本例中给出了二个函数: ResizeInit 和 ResizeForm ,在调用 ResizeForm 之前必须先调用 ResizeInit。你可以将本程序拷到窗体代码段里,然后在窗体里加入任意控件即可进行测试。

处理过程时的鼠标显示 -VB资料 窗口处理技巧大全 -VB资料 窗口事件的发生顺序-VB资料 VB创建不规则窗口 VB创建透明窗体 VB创建位图菜单 VB创建无 Icon 的窗口 打开 Win95 的创建快捷方式窗口-VB资料 打印机技巧 -VB资料 带有历史记录功能的菜单-VB资料 得知目前Mouse所指的Menu Item是哪一个-VB资料 调整 Combo 下拉部分的宽度 -VB资料 对象是使用 TAB 键还是鼠标激活的 -VB资料 防止用户编辑文本框控件中的内容-VB资料 改变 ListIndex而不发生 Click 事件 -VB资料 改变 TreeView 的背景 -VB资料 改变安装向导的背景色-VB资料 改变按钮的文本颜色-VB资料 功能强大的增强列表框 ――VB6控件LISTVIEW使用指南 关闭MDI窗体中所有的子窗体-VB资料 规范设计Windows应用软件菜单-VB资料 VB建立可滚动的视区 -VB资料 VB建立可下拉选择的属性 -VB资料 VB建立无模式窗口 -VB资料 将VB5中的ToolBar变成平面的 将程序从任务列表中隐藏 -VB资料 将我自已的命令加入窗体的控制菜单栏-VB资料 VB利用 UnloadMode 来控制窗体的卸载? VB利用Form_QueryUnload询问使用者是否关闭窗口 利用VB的图片框实现屏幕的滚动 利用VB动态改变Windows显示模式的两种方法 我是初者:照顾一下--Web编程具体指的是什么? 谁会装双启动!帮帮忙呀 求cuteFTP3.0注册码 请问大家,为什么TC图形库中,使用异或技术(setwritemode(XOR)),在相同地方画两次相同的圆却无法将圆擦去呢? 请问javascipt中的框架的 top 指什么? 纯属题外话! ipc连接与telnet的区别? 明天我要去考研,所以要早睡! 世界著名病毒编写组织和成员介绍,包括大名鼎鼎的29A(希望反病毒厂商能给他们发感谢信!) 各位,请问哪里有在winxp下查看拨号上网密码的软件? 请问到底是xp好还是2000好?或者xp有什么缺点(硬件要求高不算)谢谢! 求VSS6.0C下载 大家觉得:女孩子身高多高最合适? 我想写:select * from talbe where name like '杨%',写到adoquery1.SQL.Text后面怎么写阿?那些''''搞得我昏了,哪个好人来讲讲? 微软出版的《SQL Server2000技术内幕》这套书怎么样,看过的来讲一下啊 c#好还是bcb好?会不会淘汰bcb呀? 讨论!!!大家帮我想想!这样会不会是访问该站点的所有人只用一个SQL线程呢??? 如何在PB下实现Windows风格的标准按钮栏?请高手帮忙,十分感谢! 读DBF中被删除的记录 在div里如何加水平线 Web Service是这样慢吗? FreeBSD下C++语言工程文件的编译问题 此贴开给“zzheaptech(风的往事)”接分,感谢热心的朋友们,向你们致敬! 大家进来给个建义 谁能告诉我资源文件的语法,或者有好的关于C和C++的好网站!谢谢!!! 如何计算当天的时间差值? 这个SQL语句错在哪了? 小弟有四个三角了,放分 都说php用word很简单!!我怎么从来没成功过!!!!?? 不能反问表是什么原因 请问在局域网内的电脑怎么样象电信拨号服务器那样,使之设置成为可以提供拨号服务的主机? 高分求答 文字型简易电子计算器设计 又一个delphi处女作!下载照样送分!提了改进方法的送高分! 菜鸟问题!谁能详细叙述一下,如何将编译过后的exe文件中的数据库正常的链接使用! 大家帮我看看我打印机的问题。 请问怎么设置使局域网内的电脑能象电信那样成为可以提供拨号上局域网服务的主机? 简单的问题.关于MFC命名规则: 老实说,是不是mysql驱动有bug,或者是java.sql.ResultSet类有bug?? 关于QQ的问题,请各位帮帮忙。谢谢! 很简单的问题,JB中用JDBC连接SQL2000怎么不行? sql总是不正解,请看看! 请教各位大侠两个困扰很久的两个问题!!! 高分求救疑难,200分相赠,急!!! 在XP中,无法从右击我的电脑>>管理,进行共享文件或文件夹的设置,急!!! 如何对同时对两个表(一对多关系)进行保存操作? 请问vc能否导入vb作得一些东西,如界面之类得。 在线求解! 如何在客户端用Java检测Radio组的那一个值被选中,在线等待, asp.net高级编程打印中 有没有人能提供点主页空间? 請問Driver跟Firmware有怎樣的分別呢? 蛇精谢娜PK范冰冰 鬼马天后PK女神《泰囧》带火旅游 徐峥获泰国总理接见张国荣惊世讯息将曝光 揭秘“哥哥”情刘欢22岁女儿大量私房照曝光(组图)刘欢女儿近照曝光 盘点娱乐圈明星的漂刘欢女儿近照曝光 明星漂亮女儿美艳比赵薇刘涛李湘黄磊维多利亚明星儿女萌照大S小S王菲赵薇范冰冰揭秘大牌明星的曝刘欢22岁女儿私房照袁姗姗戚薇李小璐刘诗诗揭秘女星整容部刘欢王刚吴宗宪 男星漂亮女儿照片盘点王大治被曝暗恋苗圃20年 娱乐圈痴情董洁潘粤明婚变成定局 揭秘两人七年情章子怡跻身全球50美 盘点老外眼中的39岁张美妮搭上59岁曾志伟 个人资大S小S王菲赵薇范冰冰 揭大牌明星的大S小S王菲赵薇范冰冰 揭大牌明星的TVB男星白健恩疑似卖淫开价5.5万女子遭强奸劝带套获证据 为取证女子遭传董洁十年前被富商包养 伊能静阿娇张台湾老牌主持人徐风去世 盘点因癌症去长途车站频演“调包计”笔记本电脑转眼网店售价跌破630元,五粮液“限价令日蚀天象朝鲜海军数十官兵执行任务时身亡2014年春联行动开始征集春联作品中国人寿杯“保险在身边关爱一生”征文9000余个就业见习岗位等你报名“珠宝”沙龙让人着迷石家庄九中开展礼仪教育“大史”跨栏迎娶新娘黄金走势难言乐观巴塔“智者”遭美无人机袭击毙命龙袍流拍率达50%你会遭遇企业法律危机吗?橄榄核雕把玩中升值邯郸:车辆限行,市民多了一份理解“黄金树”下黄金矿戏曲音乐伴奏新模式明起在梅剧院展示李克强:改革要敢于打破固有利益格局法国两名记者在马里惨遭撕票出钱就是爷?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘