欢迎来到天天文库
浏览记录
ID:14496021
大小:27.50 KB
页数:7页
时间:2018-07-29
《软件界面研究论文 》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、软件界面研究论文软件界面研究论文软件界面研究论文软件界面研究论文软件界面研究论文 摘要针对软件界面因窗口大小的调整而出现的各类问题,本文提出了解决这类问题的技术、方法及有关的注意事项,并给出了用VB编写的范例程序。 关键词软件界面;同比例缩放;实现技术;VB;对象变量 1引言 界面是软件的脸面!软件是否好用、能否被用户所接受,界面起着很重要的作用。然而,在我们所使用的各类软件中,常常出现软件界面因窗口大小的调整而发生变化,以至于出现捉襟见肘、比例失调甚至“献丑”的窘境;也正因如此,许多软件开发者又采用较为保守的设计思想,将软件界面设计成Fixed,禁止用户调整大小;还有一些软件在改
2、变显示分辨率后出现界面不完整的现象,如Windows的显示属性对话框,当显示分辨率从1024×768调整到640×480时,无法看到界面底部的三个关键按钮:“确定”、“取消”和“应用”;除非重新启动计算机!这一切均给用户带来诸多不便,究其根源还在于开发者只重视了软件初始界面的设计,而对软件窗口缩放后所出现的缺陷或估计不足或缺乏对策。能否让软件界面的大小随用户的需求自由改变,而界面中的各个对象随窗口同缩放,做到软件界面始终美丽如初呢?为此,笔者进行了有益的探索,并在VB中得以实现。 2实现技术 为了保证软件界面始终如一、自适应各种窗口大小,必须做到窗口中的各个对象以及对象的字号、图像等属
3、性随窗口同缩放。为此,在软件启动时首先要用全局数组将原始窗口的大小以及窗口中各个对象的大小、位置及字号等记录下来。然后在窗口的Resize事件中进行判断和调整:当窗口宽度改变时,窗口的放大率K=现窗口宽度÷原始窗口宽度,为保证窗口的比例不变,窗口的高度应调整到原始窗口高度的K倍;反之,当窗口高度改变时,窗口的放大率K=现窗口高度÷原始窗口高度,同样需将窗口的宽度调整到原始窗口宽度的K倍;如果窗口的宽高同时改变,则视为窗口的宽度改变即可。最后,为保证窗口中的各个对象同比例缩放,对象的大小、位置及字号也应在其原始值的基础上乘以K。 为了实现上述功能,用一个二维的全局数组记录每一个对象的Lef
4、t、Top、Width、Height和FontSize属性,然后以对象变量和二维数组的行索引为参数定义两个通用过程GetData和SetData,前者用于获取对象的原始属性值,后者用于设置对象的新属性值。 此外,还要注意以下几个问题: (1)软件启动时,如果窗口的宽度大于屏幕的宽度或窗口的高度大于屏幕的高度时,应使其与屏幕同宽或同高,以避免出现类似于Windows的显示属性对话框在分辨率变化时所出现的尴尬局面。 (2)一般应用软件的窗口在最大化时会以屏幕的尺寸为依据进行双向调整,这样就会破坏原有窗口的比例。如果想让窗口最大化但又不想破坏窗口的比例,那么在最大化按钮被单击时,首先使窗口
5、的左上角与屏幕的左上角重合,然后使窗口的一边与屏幕同宽或同高,另一边则按比例放大;究竟要将哪一边调整到屏幕的尺寸要看窗口的宽高比值:若窗口偏宽,那么应以屏幕宽度为准作为窗口的宽度,否则应以屏幕高度为准作为窗口的高度;这样可以保证比例不变,而窗口尽可能最大化。 (3)当窗口的高度被调整到非常小,甚至只剩标题栏的高度时,应以窗口的最小宽度为准调整窗口的高度。 (4)对于界面中所显示的图像,最好用图像控件Image作为对象,因为此类控件一般都有拉伸属性Stretch,只要将其设置成True后显示在其中的图像就会随图像框的伸缩而自动拉伸,始终呈现给用户的是一幅完整的图像。 3范例程序界面设计
6、 启动VB后在窗体中添加四个控件:一个图像框控件Img、一个标签控件Lab、一个文本框控件Txt和一个按钮控件Cmd。软件界面如图1所示。编写代码 DimLastWidth%’’’’窗体上一次的宽度 Dima%(1To5,1To5)’’’’对象的原始数据 DimkAsSingle’’’’窗口的放大率 PrivateSubGetData(OAsObject,nAsInteger) OnErrorResumeNext a(n,1)= a(n,2)= a(n,3)= a(n,4)= a(n,5)= Ifn=1Thena(1,4)=:LastWidth=a(1,4) En
7、dSub PrivateSubSetData(OAsObject,nAsInteger) OnErrorResumeNext =a(n,1)*k =a(n,2)*k =a(n,3)*k =a(n,4)*k =a(n,5)*k EndSub PrivateSubForm_Load() GetDataFrm,1 GetDataImg,2 GetDataLab,3 GetDataTxt,4 GetD
此文档下载收益归作者所有