回 帖 发 新 帖 刷新版面

主题:请教:在15吋液显时运行的表单如何在19吋上美观运行?

我的表单是在液显15吋时编的。现在液显换成19吋的了,显屏右边就有空白处。控件少的表单我就用移动的办法使其居中显示。控件多的移动起来很麻烦。有没有简单的办法让它居中显示?

回复列表 (共3个回复)

沙发

设置窗口属性:autocenter=.t.

板凳

在自定义桌面设置中把显示区域改成1024x768,就能满屏显示

3 楼

非常感谢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 


我来回复

您尚未登录,请登录后再回复。点此登录或注册