精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VFP>>〖界面设计〗>>用VFP建立适用不同分辨率的菜单(转)

主题:用VFP建立适用不同分辨率的菜单(转)
发信人: nomean()
整理人: hunter__fox(2002-03-16 22:47:21), 站内信件
用VFP建立适用不同分辨率的菜单

  程序开发者开发的菜单一般仅适用于某些特定的分辨率,如果使用者的系统
分辨率不同,将造成画面上菜单过长或过短,为解决此问题一般都开发几个分别
适应不同分辨率下的菜单,但如此一来将造成一些不必要的麻烦,下面的程序将
解决此问题。 
  1.首先在640*480分辨率下建立一新菜单 
  2.将下列代码放在复合式物件的INIT METHOD中 
  LOCAL OLDHEIGHT,OLDWIRTH,CHANGEHEIGHT,CHANGEWIDTH 
  OLDHEIGHT=640 
  OLDWIDTH=480 
  CHANGEHEIGHT=0 &&新分辨率与640*480分辨率之HEIGHT差 
  CHANGEWIDTH=0 &&新分辨率与640*480分辨率之WIDTH差 
  *SYSMETRIC(1) &&得到目前分辨率HEIGHT 
  *SYSMETRIC(2) &&得到目前分辨率WIDTH 
  IF SYSTEMETRIC(1)!=OLDHEIGHT 
   THISFORM.LOCKSCREEN=.T. 
      CHANGEHEIGHT=SYSMETRIC(1)/OLDHEIGHT 
      CHANGEWIDTH=SYSMETRIC(2)/OLDWIDTH 
      &&更改菜单外框 
      IF THIS.BASECLASS=“FORM" 
       THIS.HEIGHT=THIS.HEIGHT*CHANGEHEIGHT 
       THIS.WIDTH =THIS.WIDTH*CHANGEWIDTH 
       THIS.TOP =THIS.TOP*CHANGEHEIGHT 
       THIS.LEFT =THIS.LEFT*CHANGEWIDTH 
      ENDIF 
      &&逐一更改CONTAINER内的控制项 
      FOR I=1 TO THIS.CONTROLCOUNT 
      WITH THIS.CONTROLS(I) 
        .HEIGHT=.HEIGHT*CHANGEHEIGHT 
        .WIDTH =.WIDTH*CHANGEWIDTH 
        .TOP =.TOP*CHANGEHEIGHT 
        .LEFT =.LEFT*CHANGEWIDTH 
      ENDWITH 
       ENDFOR 
      THISFORM.LOCKSCREEN=.F. 
  ENDIF 
  THISFORM.REFRESH 
  注:如果您预先设定最低分辨率为800*600 
  首先在800*600分辨率下建立一新菜单 
  把OLDHEIGHT=640改为OLDHEIGHT=800 
  把OLDWIDTH=480改为OLDWIDTH=600

 

--
我颤颤地伸出手
却没能握住一丝温柔

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.101.119.121]

[关闭][返回]