中国记者协会:vb窗体中控件自动随窗体变化大小

来源:百度文库 编辑:偶看新闻 时间:2024/05/09 04:34:02
  • 硬件咨询
  • 电脑技巧
  • 图像处理
  • 网页设计
  • 网络开发
  • 桌面开发
  • 数据库开发
  • 网络技术
  • 您现在的位置: pcdog首页  > 程序开发 > VB > 正文

    vb窗体中控件自动随窗体变化大小

    来源:CSDN 作者: 2007-12-01 出处:pcdog.com

    源代码下载:http://blog.blogchina.com/upload/2004-12-07/20041207155830520878.rar

    在开发中,往往开发人员需要控制控件大小适应窗口的大小,使得软件在不同的分辨率下也显得比例协调.
    那么,怎么才能让窗体中控件自动随窗体变化大小呢?

    我觉得有一种原始方法很有用,不让窗体可以最大化:比如飞天餐饮软件.......

    当然这种方法是绕道而行.开发出来的软件肯定好看不了.
    好了,让我们来引出下面这个很有用,比较专业的Model吧.
    --------------------------------------------------------------------------------
    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

    '开发软件时候,把这个modal装入程序中.然后加入如下代码:
    Private Sub Form_Load()
    Call ResizeInit(Me) '在程序装入时必须加入
    End Sub

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

    ok,这样你的软件就可以窗体中控件自动随窗体变化大小!

    你的软件至少从外观上从此变得不再那么难看了.而且大分辨率下也显得比例协调了.

     



    上一篇:与VB .NET一起使用.NET Framework
    下一篇:在vb中实现超连接的方法!和直接发邮件
    相关专题
    热门排行文章
  • (1888次浏览)教你用Visual Basic制作安装程序
  • (1752次浏览)桌面背景任你改
  • (1549次浏览)用Visual Basic创建多线程应用程
  • (1376次浏览)VisualBasic第三方控件实现软件在
  • (1369次浏览)VB中使用WinSock控件编写网络程序
  • (1191次浏览)VB打造超酷个性化菜单(1)
  • (1049次浏览)掌握VB中的ADO数据对象编程
  • (993次浏览)在Visual Basic 6.0 中创建Word文
  • (975次浏览)VB网络编程中Winsock的使用
  • (964次浏览)用VB控制EXCEL生成报表
  • 最新技术文章
  • 12-14用VB实现应用程序在局域网络上自动更新
  • 12-14Visual Basic串口通信程序设计
  • 12-14用SendMessage滚动文本框控件的内容
  • 12-14DataGrid 控件的使用
  • 12-14用VB远程控制可编程控制器
  • 12-14VB图像处理之图像的亮度对比度调整
  • 12-14VB程序实现WindowsXP效果的界面
  • 12-14在VB中使用API函数(回调(CallBacks))
  • 12-14用VB编写你自己的MSN即时通讯软件
  • 12-12在程序中做出信息的分隔线
  • 相关文章阅读 

    关于我们 | 联系方式 | 合作伙伴 | 版权声明 | 帮助信息 | 网站地图

    Copyright 2006 PCdog.com, All Rights Reserved.

    流量统计