主题:请教:在15吋液显时运行的表单如何在19吋上美观运行?
myww
[专家分:1190] 发布于 2009-09-03 17:13:00
我的表单是在液显15吋时编的。现在液显换成19吋的了,显屏右边就有空白处。控件少的表单我就用移动的办法使其居中显示。控件多的移动起来很麻烦。有没有简单的办法让它居中显示?
回复列表 (共3个回复)
沙发
colcolcom [专家分:2330] 发布于 2009-09-05 06:54:00
设置窗口属性:autocenter=.t.
板凳
小野芒草 [专家分:670] 发布于 2009-09-05 12:32:00
在自定义桌面设置中把显示区域改成1024x768,就能满屏显示
3 楼
myww [专家分:1190] 发布于 2009-09-09 15:50:00
非常感谢lym2009提供的解决方案,我的目的已经达到了。
lym2009提供的解决方案是:
LOCAL lnHeight, lnWidth, lnHeightdiff, lnWidthdiff
lnHeight =600 && 原分辩率下的控件高度
lnWidth = 800 && 原分辩率下的控件宽度
lnHeightdiff = 0 && 保存不同高度的变量
lnWidthdiff = 0 && 保存不同宽度的变量
IF SYSMETRIC(2) <> lnHeight && 如果目前不是运行于 800x600分辩率下
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()
我只把其中的两行
lnHeight =600 && 原分辩率下的控件高度
lnWidth = 800 && 原分辩率下的控件宽度
的值修改了一下,就在19吋的显屏上美观运行了。即:
lnHeight =800
lnWidth = 1000
我来回复