创新源于智慧,智慧源于勤奋点击与我进行在线交流

Green1原创空间

海纳百川,有容乃大


公告

四川理工学院信息管理与信息系统专业学生,男,83年5月生。

职业:自由开发者

为人座右铭:做人要厚道

QQ:61951565 

VFP群:4001858(已满员),17966472

E-mail:lugreen@163.com

QQ空间:Greeeeeeeeeeeeeen

本博客文章未经作者同意不得转载


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:Green1Vfp 原创空间
日志总数:35
评论数量:101
留言数量:3
访问次数:443323
建立时间:2004年12月7日




[用户接口]根据显示器分辨率自动调整表单及控件的大小,使软件界面大小与设计时的比例保持一致
网上资源,  软件技术

Green1 发表于 2006/3/18 16:05:35  VFP QQ群:4001858 VFP UC团体:4363524 欢迎您的加入

有时我们会遇到这样的情况,在1024*768分辨率分设计的程序在800*600的分辨率下运行时窗口界面会变得很不协调 使用下面的代码可以解决这一问题 LOCAL lnHeight, lnWidth, lnHeightdiff, lnWidthdiff lnHeight = 480 && 原分辩率下的控件高度 lnWidth = 640 && 原分辩率下的控件宽度 lnHeightdiff = 0 && 保存不同高度的变量 lnWidthdiff = 0 && 保存不同宽度的变量 IF SYSMETRIC(2) <> lnHeight && 如果目前不是运行于 640x480 分辩率下 lnHeightDiff = SYSMETRIC(2) / lnHeight lnWidthDiff = SYSMETRIC(1) / lnWidth ** 如果是在容器对象(如页框中的页等非表单且具有 ControlsCount 属性的容器)的 Init 事件中, 你需要注 ** 释掉以下代码直到 ENDIF 代码行. This.Height = This.Height * lnHeightDiff This.Width = This.Width * lnWidthDiff This.Top = This.Top * lnHeightDiff This.Left = This.Left * lnHeightDiff ** 遍历各对象, 重新调整和安排它们. FOR I = 1 TO This.ControlCount WITH This.Controls(i) .Height = .Height * lnHeightdiff .Width = .Width * lnWidthdiff .Top = .Top * lnHeightdiff .Left = .Left * lnWidthdiff ** 你也可以在这里修改 FontSize 属性来重调字体 ** IF TYPE(".FontSize") # "U" ** && IF 用于确保控件具有 FontSize 属性 ** .FontSize = .FontSize * ((.5 * lnWidthdiff) + (.5 * lnHeightdiff)) ** ENDIF ** 但是, 一些较高的屏幕分辩率会适当地修改字体外观, 因此在试以上代码前应进行测试. ENDWITH ENDFOR ENDIF ThisForm.Refresh()


阅读全文(6976) | 回复(1) | 编辑 | 精华点击这里给我发消息

 


回复:根据显示器分辨率自动调整表单及控件的大小,使软件界面大小与设计时的比例保持一致
网上资源,  软件技术

在线计算器(游客)发表评论于2011/8/20 11:06:16  VFP QQ群:4001858 VFP UC团体:4363524 欢迎您的加入

好好


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除点击这里给我发消息

 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144806519 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号