社区
VFP
帖子详情
各位,有没有让窗体内各控件,跟着窗口按比例变得好办法?在线等
wanglei1981
2004-09-22 03:13:22
各位,有没有让窗体内各控件,跟着窗口按比例变得好办法?谢谢
...全文
70
5
打赏
收藏
各位,有没有让窗体内各控件,跟着窗口按比例变得好办法?在线等
各位,有没有让窗体内各控件,跟着窗口按比例变得好办法?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wanglei1981
2004-09-22
打赏
举报
回复
谢谢两位,已经解决了
接分
十豆三
2004-09-22
打赏
举报
回复
你把以下代码写入你的Form的Init事件中
*********************************
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
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
IF TYPE(".FontSize") # "U"
&& IF 用于确保控件具有 FontSize 属性
.FontSize = .FontSize * ((.5 * lnWidthdiff) + (.5 * lnHeightdiff))
ENDIF
ENDWITH
ENDFOR
ENDIF
ThisForm.Refresh()
wanglei1981
2004-09-22
打赏
举报
回复
我想根据窗口大小来调节比例,应该怎么办?
十豆三
2004-09-22
打赏
举报
回复
如何创建一个根据屏幕分辩率自动调整的表单
概述
在一种分辩率下开发的屏幕在另一种分辩率下运行时, 可能与你期望的不同. 一种方案是开发不同分辩率下的多个不同的屏幕, 并在某一分辩率下运行相应的屏幕.
但是在 Visual FoxPro 中, 可以根据当前分辩率动态调整屏幕大小并重新安排对象. 本文用例子演示了如何这样做.
更多信息
逐步示例
在 640x480 分辩率下创建一个新表单. 添加一些文本框, 命令按钮和标签这样的控件到表单.
将以下代码放入表单的 Init 事件中和表单中的任何窗口任何容器对象(如页框中的页)的 Init 事件中:
** 假定屏幕是在 640x480 下创建的
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()
在表同分辩率下运行表单. 可以观察到它们的自动适应
JohnShen
2004-09-22
打赏
举报
回复
参见:
http://community.csdn.net/Expert/topic/3198/3198405.xml?temp=.4384424
请问如何使表单能够自动适应屏幕的分辨率?
软件界面设计工具_3款合集
这样,设计者在调整
控件
大小或者位置时(包括
控件
与
控件
,
控件
与
窗体
边缘等的距离等情况),工作
变得
很简单。 图六、使用UIDesigner制作原型—自动对齐功能 第三步:几分钟后,所有的
控件
都放到
窗体
并设置好...
JAVA上百实例源码以及开源项目
Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...
朱老师QT系列课程-1.7.QT其他标准
控件
和布局
控件
本课程是《朱老师QT完全学习系列课程》第1... 和 垂直布局 QVBoxLayout (3)格栅布局 QGridLayout (4)
窗体
布局 QFormLayout (5)分裂器布局 QSplitter,有水平和垂直2个方向 (6)弹簧 Spacer,有水平和垂直2个方向
JAVA上百实例源码以及开源项目源代码
5个目标文件 内容索引:Java源码,
窗体
界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。...
C#
窗体
怎样实现自适应大小(一)
以前用串口助手时,没有发现什么不对劲的地方,但自己写的上位机
控件
,点击
窗口
最大化时,界面却没有按相应的
比例
放大,让人看得很不舒服,其实,知道
窗口
有自适应这一说法,可在C#里如何实现呢?在C#编程里,使用...
VFP
2,722
社区成员
29,108
社区内容
发帖
与我相关
我的任务
VFP
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
复制链接
扫一扫
分享
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章