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

一劳永逸让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。你可以将本程序拷到窗体代码段里,然后在窗体里加入任意控件即可进行测试。

棱镜、飞流、TalkingData三方解读:手游如何高效运营 【MDCC秀场】枕戈待旦——秉持移动开发大潮下的主角思想 Netflix的首席产品官Neil Hun谈推荐系统打造和AWS实践 微信开放WiFi接口,醉翁之意在乎O2O还是大数据? 软硬整合:基于云的微型智能防丢设备Linquet 【MDCC专访】AppCan CTO赵庆华:助力企业快速移动化 使用Bluemix中的Rules服务构建一个酒店预订应用程序 基于IBM Bluemix开发微信公共账号应用 用Cloudant在Bluemix上构建一个简单的文字游戏应用程序 IBM Bluemix是什么? 【最具价值CTO评选秀】纷享销客CTO刘晨:企业移动的技术挑战 【最具价值CTO评选秀】能做存储的超级计算机——任宇翔和以色列团队的创业故事 OpenStack Swift存储策略 分享5个可视化的正则表达式编辑工具 在iOS程序中使用Bluemix云推送服务 GitHub开源任务列表组件 表白健身小能手!详解Apple Watch特色功能 高逼格不任性!个人智能航空摄影飞行设备ZANO Clappr——开源的Web视频播放器 东软举办2014解决方案论坛 将全面推进BBC战略 Google Glass已死,智能眼镜长存! 五个步骤,保护移动应用免受恶意攻击 声波改变移动社交——参加联想“茄子快传”创意征集 赢取平板电脑大奖! 车载硬件Baen:被游戏化的驾驶体验 深入解析Docker背后的namespace技术 响应苹果要求:Qt 5.4、Qt Creator 3.3同迎RC版 击碎泡沫谈发展,盘点OpenStack商业生态圈! 2014年11月操作系统份额:Windows 7雄居第一,XP跌新低 微信开放平台上线统计报表功能 【向导】如何开始学习高伸缩性编程? 基于Apache Samza,揭秘LinkedIn架构背后的技术 请教有关IE5带的ActiveX控件Dhtmled.ocx的98下安装问题 程序员与高级程序员到底那个好过 关于 delphi的一点东东 access一个日期时间字段是短格式的,用什么SQL语句改成长格式的? 怎样才能在主页中显示自己的qq是否在线?????? 有没有平面按钮控件 Interdev6.0 IDE 环境下无法使用MSDN access一个日期时间字段是短格式的,用什么SQL语句改成长格式的?? 大家来帮帮我想想?应该怎么样来删除呢!!!! 各位用VB.net的兄弟,请问你们使得是 Beta1 还是 Beta2 ? 迷周星弛的请来签名啊! 如何操纵RichTextEdit控件??? 我得到GIF图像的这一点的值,怎样得到它的正确的RGB值? 我想请问在CHTML(compact html)中如何对页面进行刷新。 各位老大,你们是如何找到工作的? 在VB.net中,如何实现VB6中的 set A=createobject("XXXX.XXXX") 诸位大虾救命,如何在EDIT控件中判断DBCS字符 !!求救!!对时!!! 在VC中使用Crystal report 8的问题 如何编写c程序自动对GIF图片设置大小 请教:鼠标在windows桌面上按键是否会引发某个事件? 查看DLL的输出函数 menu的问题 web的组件由什么来编写? 嵌入式数据窗口,怎样可以动态往里插数据窗口??? 在DELPHI中如何调用NETBIOS的API函数 AddNew 怎么用?- 怎么办那,啊? 问题标题前的绿色的对号是什么意思?是不是表示问题已经解决? 怎么学VC啊,菜鸟的菜菜的问题啊。 关于打印比较 提取汉字的拼音 四级挂了,给分,气死了 难题时时有,把它问诸位,不知哪位高手,今日肯帮俺------解决送个人照片(不知各位肯要否?) 刚考完英语四级,来这里发泄一下。同时送上300分! PHP和JAVA如何通讯? 请问哪里有 soft-ice for 2k 如何将字符串的首尾空格去掉??? 1分钟求解:与HEX()对应的把16进制转换成10进制的函数是什么? 怎样判断某个控件是button、edit还是combox、listctrl......? VB.NET(VS.NET)/Beta2正式版下载地址与安装方法 有人用VsPrint吗? delphi、vc、c++ builder三者,哪一种是你的最终选择,why? 第一次上来灌,宋粉 关于C编译后的几个文件后缀名. 请教各位,主要用于办公和工程预决算,用AMD的Duron+km133(集成savage4)行吗? delphi、c++ builder、vc三者,哪一种是你的最终选择,why? 程序结束时,窗体和内存的释放问题 c++ builder、delphi、vc三者,哪一种是你的最终选择,why? 唉,牙齿好疼 高分求语音系统算法! 解方程 8.8x-2.4x=3.2 4.6x+5.4x=10.89 3(x+1.解方程8.8x-2.4x=3.24.6x+5.4x=10.893(x+1.7)=9.6(x-4.5)6=31.8 关于x的方程4x-a²x=2-a有无数解那么a=? 若方程组3x+y=1+3a,x+3y=1-a的解满足x+y=0,求a的取值 求1/5X+1/4X=1/5X+8+1/5X方程的解法 x-5分之2+4分之一等于八分之五,方程怎么解? a若方程组{3x+y=1+3a x+3y=1-a的解满足x+y>0,则a的取值范围是( ) 求(4x-10)=5/7(5x-8)的详细解法,要小学水平,谢谢! 八分之七x等于六分之一乘八分之五 已知方程组3x-4y=3a-6,x+3y=2a+7的解x,y都是正数,且x的值大于y的值,求a的取值范围 5X的方+4X-2=09999X的方+2X-1=0,已知X的方+X-1=0,则X的三次方+2X的方+2005=?(m^2-1)x^2+mx+1/4=0 X*8%+(60-X)*9%=5 求解这个方程 得数等于40 已知2x+3y=a+2,且3x-4y=3a-1,若XY =0,求a的取值范围 .不是xy=0。应该是xy>=0。 4x+2.5x*(x十0.85)=13.5 方程的解 (x+2+x)×5÷2=40 这个方程怎么算 方程4(3-2x)+3a+2=7-4a-3(x-5)的解不比2a+1小,求a的取值范围 若-2^2+5x-2>0,√4X^2-4X+1+2|x-2|=? 方程 1+40%x=4分之5(要过程) 已知关于x的方程4(3-2x)+3a+2=7-4a-3(x-5)的解不小于2a+1,求a的取值范围kkkkk 4X-3=5X+6紧急! X的2倍与9的和等于-3,方程是 已知关于X的方程4(3—2X)+3a+1=5—4a+3(X—5)的解不比2a—1小,求a的取值范围? -3- (6+5x)= -4x+1 十x-3等于9方程式求解答 已知方程4(3-2x)+3a+2=7-4a-3(x-5)的解不比2a+1小,求a的取值范围 若方程kx2-4x+3+0是关于x的方程,且有实根,则K的非负整数值为? 一个数的二分之一比这个数的25%多10.这个数是多少?方程解 已知关于X的方程3a+x=a\2x+3的解为x=4,求a-2a+3a-4a+5a-6a+ +99a-100a的值 若关于x的一元二次方程kx2+4x+3=0有实数根,则k的非负整数值是 根据下列条件列出方程:一个数的5倍比这个数大10;一个数的5倍与9的差等于这个数的一半;某数比它的7倍小2一个数与4的和的3倍比这个数大5 已知关于x的方程4(x+2)-2=5+3a的解不小于方程(3a+1)/3=a(2x+3)/2的解,求a的取值范围. 【QUICKLY】当k取什么值时,关于x的方程kx2+4x-2=0只有正实数根?.应该很简单的 只可惜ME思维短路1.当k取什么值时,关于x的方程kx2+4x-2=0只有正实数根?kx2乃kx的平方! 10分之3和5分之1的和等于一个数的4分之3,求这个数.(用方程解) 写题即可计划产量:实际产量:24吨(比计划增产3分之1)甲,乙,丙各有若干张邮票,甲的邮票是乙的3分之2,乙的邮票是丙的4分 已知关于x的方程3(x+2)-2=7+3a的值不大于(5a+1)/5 x=(2x+3)a/2的解,求a的取值范围 若关于x的方程k(x^2)-4x+3=0有实数根,则k的非负整数值是?过程写下 10/9X-66=6/1X 这个方程怎么解? 已知关于x的方程ax^2-(2a+1)x+3-3a=0的解都大于1,则a的取值范围是答案是0≤a<0.5老师是用△≥0,韦达定理做的 当k是什么整数是,关于x的方程kx2+4x+12=0与x2-2kx+k2-7k-16=0的根都是整数 x-5/1x=10/7这个方程式怎么解 如果关于x的方程3(x+4)-4=2a+1的解大于方程4a+1/4 x=a(3x-4)/3的解,求a 的取值范围 已知方程4x-3m=x-6m+1的解在1和负1之间则满足条件的整数值为( ) 顺便分析下 方程10.1X加38.6=54.3加9.55怎么解 已知关于x的方程:4(x+2)-2=5+3a的解不小于方程(3a+1)x/3=a(2x+3)/2的解,求a的取值范围. 若方程X^2-4X+3M=0,与X^2-X-6M=0有一个根相同,求M 3分之2x÷5分之3=15 解方程 x+4分之1x=7.5 已知方程2/3x-3k=5(x-k)+1的解为非负数,求k的取值范围 已知关于x的方程4x-3m=2的解x=m,则m的值是 若关于x的方程x+2=a和2x-a=3a有相同的解,求a(1/2)某学校在援助边远山区活动中,原计划捐书3000册,由于学生的积极响应,实际捐书3780册,其中初中部比原计划多捐了20%.高中部比原计(2/2)划多捐 关于x的方程2/3x=5(x-k)+3k+1的解是负数,求k的取值范围. 已知关于x的方程4x-3m=2的解是x=m,则m的值是 关于x的方程2x-3a=1的解是x=a,则a=? 已知关于X·y的方程组2x+y=2k+1 3x-2y=k-1的解满足x-3y<5求k的取值范围 怎么算 已知关于x的方程4x-3m=2的解是x=-m,则m的值为( ). 诺关于X的方程x+2=A和2X-4=3A有相同的解,则A=?急 当K为何值时,方程组3x-y=2k和x+2y=3k-14的X、Y互为相反数? 8x/3分之4=5分之3-2解方程我快急死了..... 方程5(x-1)²+4x=0 求b²-4ac 已知方程组2x-3y=2-3a,3x-4y=2a-1的解满足x>0,y -11-6x=7+8x -3+2-7=4x-15-8x ( 解方程)7x-6-8x+12=-3x+9-3+2-7=4x-15-8x 方程x²+4x+1=0的根是 已知方程组{2x-4y=2-3a 3x-4y=2a+1 的解满足{x>0 y
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn