发信人: 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]
  | 
 
 
 |