学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> VB >> VB6.0应用程序界面设计探讨


VB6.0应用程序界面设计探讨


天极IT资讯短信服务 电脑小技巧
资费:包月5元
手机:
介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。

  凡用过VB编写Windows应用程序的用户都可能有过这样的经历:当一个经过精心设计的应用程序运行后,如果用户重新调整了窗体的大小,则控制在窗体中的相对位置、控件与窗体的大小比例均会严重失调,程序的界面变得面目全非。一个好的Windows应用程序的界面,自适应窗体尺寸改变的能力是必不可少的。笔者在这方面做了一些探讨,希望能对VB编程爱好者提供一些启发和帮助。

看图之王ACDSee 6.0应用大全 数码人像照片矢量化及艺术处理
六天学会Visual Basic数据库编程 解析“震荡波”恶性蠕虫病毒
  1、按照窗体尺寸缩放比例自动调整控件的大小

  窗体和控件的大小由窗体和控件的Width属性和Height属性确定。所以当用户界面设计完成之后,窗体及其内部的各控件的Width, Height属性便随之确定下来;从而窗体相对于每一个控件,它们的宽度之比、高度之比均被确定。如果窗体Forml内的一个文本框Text1的宽(即Text1的Width属性值)为3610,高度(即Text1的Height属性值)为1935;而窗体Form1的上述两个值分别为4890和3615,则它们的宽度之比和高度之比分别为:361014890、193513615。当用户在程序启动后调整了窗体的尺寸,窗体的宽度和高度将分别为Form1.ScaleWidth,Form1.ScaleHeight;此时应该按上述比例来调整文本框Textl的的高度和宽度值。即:

  (调整后的Text1的Width属性值)/( Form1.ScaleWidth)=3610/4890;
  (调整后的Text1的Height属性值)/(Form1.Scale-Height)=1935/3615;
  所以调整后的Text1的Width属性值=(3610/4890)* Form1.ScaleWidth;
  调整后的Text1的Height属性值=(1935/3615) * Form1.ScaleHeight;

  对于一般控件来说,应该有:

  调整后的控件的Width属性值=(控件原Width属性值/窗体原Width属性值)*窗体.ScaleWidth
调整后的控件的Height属性值=(控件原Height属性值/窗体值/窗体原Height属性值)*窗体.ScaleHeight
按照上述方法确定窗体缩放后控件Width和Height属性值,则当窗体尺寸被调整后,控件的大小将按比例得到相应的调整。

  2、按照窗体尺寸缩放比例自动调整控件在窗体中的相对位置

  控件在窗体中的位置由该控件的Left和Top属性确定。程序启动后如果窗体被缩放,只要按照缩放的比例来重新调整窗体内各控件的Left和Top属性值即可。

  所以根据上面介绍的原理,在窗体被缩放之后,只要按照下面的关系来设置控件的Left和Top属性值即可。
调整后控件的Left属性值=(控件原Left属性值/窗体原Left属性值)*窗体.ScaleWidth;
调整后控件的Top属性值=(控件原Top属性值/窗体原Top属性值)*窗体.ScaleHeight;

  3、实现按窗体缩放比例调整控件大小及位置的具体方法

  我们知道,Resize事件是窗体响应的一个事件。当窗体第一次显示或当窗体的状态被改变时(如窗体被最大化、最小化或被还原时)该事件发生。所以只要将对控件大小、位置的调整代码写入窗体的Resize事件中便可达到目的。具体可在窗体的Resize事件过程中使用对象的Move方法:

Private Sub Form_Resize()
Object.move Newleft, Newtop, NewWidth, NewHeight
End Sub

  其中:

   Object是需要调整大小和位置的任意一个控件的名称;

   NewLeft, NewTop, NewWidth与NewHeight分别是窗体缩放后控件应有的新的Left, Top,Width与Height的属性值,它们确定了当窗体被缩放后控件的大小和位置。NewWidth, NewHeight的值可由1中的两个公式得到:NewLeft, NewTop的值可由2中的两个公式得到。

  4、窗体的多控件的处理

  当一个窗体中有多个控件时,如果对每一个控件都用上述方法处理显然比较繁琐。为此,以下给出一个通过编程来处理窗体内多个控件的一般方法(注意:如果窗体内有不可见的控件,则应该在程序中加入相应的代码以避免检查这些控件的尺寸,否则将出错)。

  (1)自定义一个数据类型

  在标准模块的声明段写入:

Type cp
 wp As Single
 hp As Single
 tp As Single
 lp As Single
End Type

  (2)定义一个窗体级数组

  在窗体模块的声明段写入:

Dim ap() As cp

  (3)定义一个通用过程

Sub ai()
Dim i As Integer
For i=0 To Controls.Count-1
With ap(i)
.wp=Controls(i).Width/Form1.ScaleWidth
.hp=Controls(i).Height/Form1.ScaeHeight
.lp=Controls(i).Left/Form1.DcaleWidth
.tp=COntrols(i),Top/Form1.ScaleHeight
End With
Next i
End Sub

  (4)在窗体的Load事件过程中写入代码:

Private Sub Form_Load()
ReDim ap (0 To Controls.Count-1)
ai
End Sub

  (5)在窗体的Resize事件过程中写入代码:

Private Sub Form_Resize()
Dim i As Integer
For i=0 To Controls.Count-1

  以下三行需在一行内写完

Controls(i).Move ap(i).1p * Form1.ScaleWidth,
ap(i).tp * Form1.ScaleHeight,ap(i).WP*Form1.ScaleWidth,
ap(i).hp * Form1.ScaleHeight
Next i
End Sub

  不难看出,上面的代码具有普遍意义:即对于任何VB程序,只要将上面给出的代码按照要求写入程序中,则无论该VB程序的一个窗体中具有多少控件,均能使窗体内的控件自适应于窗体尺寸缩放,从而解决了控件与窗体在尺寸和位置两方面的比例失调问题。

 



技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

!...
游客 发表于2008-5-3 21:29:32
对"VB6.0应用程序界面设计探讨"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 VB6.0应用程序界面设计探讨 相关内容
Google搜索中 VB6.0应用程序界面设计探讨 相关内容
雅虎中 VB6.0应用程序界面设计探讨 相关内容
Sogou搜索中 VB6.0应用程序界面设计探讨 相关内容

相关软件 最新回复帖子:

·VB6.0应用程序界面设计探讨
·AutoCAD拉伸命令快速绘制立体五角星
·AutoCAD中对齐命令的实战运用
·AutoCAD模拟空间与图纸空间简介
·PS为黑背景长发美女照片抠图换背
·Flash实例制作剖析:蝶恋花
·PHP会话[session时间设定]使用入门
·用Visual Basic轻松实现看图软件
·AutoCAD三维造型实例--篮球
·AutoCAD建模实例:绘制雨伞


  相关软件 VB6.0应用程序界面设计探讨相关文章
VB中控件大小随窗体大小变化而变化 Visual Basic实现对I/O端口操作
利用API函数实现图像淡入淡出 利用Visual Basic命令操作文件
利用Visual Basic常用控件操作文件 VB中利用Windows API实现文件操作
VB中操作目录的Winodws API小结 用Viusal Basic命令操作目录解析
利用VB控件操作目录和文件夹 Visual Basic两行代码写播放器
VB中创建可以输出函数的DLL 在VB的ListView控件中动态加载记录
用VB远程控制可编程控制器 基于VB编程的链式存储技术浅析
VB开发客户服务器软件的设计与实现 在Visual Basic编程中运用数据结构
用VB判断网页文件是否在IE缓存中 向Visual Basic程序员介绍泛型
VB程序错误处理方法小结 VB中SQL合计函数的使用