根据屏幕分辨率高速应用程序
?牐?1.如在计算机屏幕分辨率不到640×480情况下创建一个新表单,表单中添加一些常用控件如文本框,命令按扭和标签等到表单中;
?牐?2.将以下代码放入表单的Init事件和所有的容器控件中Init事件(如容器、页框中的页等)中:
?牐燣ocal lnHeight,lnWidth,lnHeightdiff,lnWidthdiff
?牐燳H=480 && 原分辨率下的高度
?牐燳W=640 && 原分辨率下的宽度
?牐燞BL=0 && 保存不同分辨率的变量
?牐燱BL=0 && 保存不同宽度的变量
?牐營F SYSMETRIC(2)<>YH
?牐?&& 如果目前不是运行于640×480分辨率下,获得当前分辩率与设计分辨率高和宽的比例值
?牐燞BL=SYSMETRIC(2)/YH
?牐燱BL=SYSMETRIC(1)/YW
?牐?&&如果是容器对象或其它非表单对象,需要注释掉下面这四行代码
?牐燭HIS.Height=THIS.height*HBL
?牐燭HIS.Width=THIS.Width*WBL
?牐燭HIS.Top=THIS.Top*HBL
?牐燭HIS.Left=THIS.Left*WBL
?牐?&&下面代码是遍历所属各对象,重新调整各对象的大小和位置
?牐燜OR i = 1 to THIS.ControlCount
?牐燱ITH THIS.controls(i)??
?牐?.Height=.Height*HBL
?牐?.Width=.Width*WBL
?牐?.Top=.Top*HBL
?牐?.Left=.Left*WBL
?牐?&&如果控件拥有FontSize属性,则调整修改各对象中的FontSize属性值来重新确定对象字体大小。
?牐?&&值得注意的是在一些较高分辨率下,计算机屏幕会在一定程序下改变字体,因此要对系统进行测试
?牐營F TYPE(".FontSize") # "U"
?牐?.FontSize=.Fontsize*((.5*WBL)+(.5*HBL))?牐?
?牐燛NDIF
?牐燛NDWITH
?牐燛NDFOR
?牐燛NDIF
?牐燭HISFORM.Refresh
?牐?3.保存这个表单,调整计算机屏幕分辨率,在不同分辨率下运行这个表单,我们能看到,现在的这个表单会根据分辨率的不同自动调整对象的大小和位置,使得设计的表单不会因为分辨率的改变而发生变化,这样就实现了应用程序表单对不同分辨率的自适应。
?牐犚陨辖樯艿氖且恢质迪钟τ贸绦虮淼ナ视Σ煌聊环直媛实姆椒ǎ菡飧鲈砑纯杀喑龈邮涤玫挠τ贸绦颍行巳さ亩琳卟环烈皇浴?