| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付赛孚耐:软件保护加密专家
身份认证令牌USB KEY   
共有 873 人关注过本帖
标题:表单显示如何实现自动化!
收藏  订阅  推荐  打印 
hongshan008
Rank: 1
等级:新手上路
帖子:20
积分:300
注册:2007-5-19
表单显示如何实现自动化!

如何使设计的表单以用户使用的电脑的显示分辨率的改变来自动改变,比如设计的页面是800×600,如果到了1024×768的电脑上不至于还是显示800×600?
高手赐教!
搜索更多相关主题的帖子: 自动化  表单  
2007-5-19 14:13
啸凡
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:33
帖子:1125
积分:11520
注册:2006-2-22

本人不才,据我了解VFP好像没办法实现

学无止境 http://bbs.zc268.com
2007-5-19 15:19
hu9jj
Rank: 12Rank: 12Rank: 12
来自:红土地
等级:版主
威望:18
帖子:1247
积分:13004
注册:2006-5-13

如果你并没有让表单最大化,那当然还是按你设计的大小在屏幕中显示的。
如果你将表单的Windowstate属性设置成2,或者使用了代码
ZOOM Windows Screen Max
那么表单将自动充满整个屏幕。

活到老,学到老! http://www.qs98.com E-mail:hu-jj@21cn.com
2007-5-19 19:55
hongshan008
Rank: 1
等级:新手上路
帖子:20
积分:300
注册:2007-5-19

我晓得最大化得问题,但是有个问题,当表单最大化以后只是从下面和右面多出来些空白的地方,并不是讲表单中所有得控件都按比例放大,所以如果设计了表单最大化会破坏原来得设计格局。
2007-5-20 10:11
啸凡
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:33
帖子:1125
积分:11520
注册:2006-2-22

呵呵,显示模式的设置与表单最大化好像并不是一回事。

学无止境 http://bbs.zc268.com
2007-5-20 19:24
hu9jj
Rank: 12Rank: 12Rank: 12
来自:红土地
等级:版主
威望:18
帖子:1247
积分:13004
注册:2006-5-13

可以通过Wcols()和Wrows()函数来获得窗口的列数和行数,然后调整表单中部分控件的尺寸,但很难做到按比例放大。

活到老,学到老! http://www.qs98.com E-mail:hu-jj@21cn.com
2007-5-20 19:36
keniy
Rank: 1
等级:新手上路
帖子:4
积分:140
注册:2006-12-26
回复:(hongshan008)表单显示如何实现自动化!

把以下程放入INIT中

**************根据屏幕分辩率自动调整的表单
LOCAL lnHeight, lnWidth, lnHeightdiff, lnWidthdiff
lnHeight = 600 && 原分辩率下的控件高度
lnWidth = 800 && 原分辩率下的控件宽度
lnHeightdiff = 0 && 保存不同高度的变量
lnWidthdiff = 0 && 保存不同宽度的变量
IF SYSMETRIC(2) <> lnHeight && 如果目前不是运行于 600x800 分辩率下
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
ENDWITH
ENDFOR
ENDIF
ThisForm.Refresh()
2007-9-20 13:42
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.065168 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved