社区
VFP
帖子详情
各位,有没有让窗体内各控件,跟着窗口按比例变得好办法?在线等
wanglei1981
2004-09-22 03:13:22
各位,有没有让窗体内各控件,跟着窗口按比例变得好办法?谢谢
...全文
65
5
打赏
收藏
各位,有没有让窗体内各控件,跟着窗口按比例变得好办法?在线等
各位,有没有让窗体内各控件,跟着窗口按比例变得好办法?谢谢
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
5 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
打赏红包
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
请问如何使表单能够自动适应屏幕的分辨率?
相关推荐
一个实现PB
窗口
控件
的自动缩放功能的例程
一个实现PB
窗口
控件
的自动缩放功能的例程,
窗口
内的
控件
包括Tab
控件
和UserObject
控件
内的
控件
将随
窗口
大小的变化按
比例
自动进行缩放
wpf内的
控件
缩放
在做项目的时候,要求
窗体
内的多张图片大小
跟着
窗体
进行缩放。若对每一张图片进行按
比例
调整操作就太复杂了,因为图片数量太大了。 查阅资料,终于找到了一个好用的东西---Viewbox! Viewbox
控件
的功能是"Definesa content decorator that can stretch and scale a single child to fill theavailab
c# winform 鼠标改变
窗体
的大小,使
窗体
内的图片
跟着
改变
首先要给
窗体
一个事件,Resize,在调整
控件
大小时发生 然后在这个方法里获得当前
控件
工作区中的矩形的宽和高,即时的赋给pictureBox1,就实现了鼠标改变
窗体
的大小,使
窗体
内的图片
跟着
改变 //------------------------------------------------------------------------------------------ int t...
自动缩放
窗体
内的
控件
自动缩放
窗体
内的
控件
窗体
引入该
控件
,
窗体
内所有的可见
控件
,自动缩放大小
窗体
引入该
控件
,
窗体
内所有的可见
控件
,自动缩放大小
发帖
VFP
VFP
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
复制链接
扫一扫
2574
社区成员
2.9w+
社区内容
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2004-09-22 03:13
社区公告
暂无公告