浏览Windows下位图的小程序

Author: 张强 Date: 1997-01-01

  通常,Windows中有很多的位图文件(后缀为.BMP的文件),如果想一一查看这些位图文件,通常的做法是用画笔程序或其它的图形编辑软件来打开,这样做很麻烦,本人用Foxpro 2.5 for Windows编写了一个小程序,使这一过程变得很简单,具体过程如下:
  一、建立一个名为BMP.TXT的文本文件,使其包含指定盘上的所有位图文件名。本人的做法是使用FL.EXE,即键入FL *.BMP>BMP.TXT。
  二、建立一个名为BMPLIST.DBF的数据库,包括NAME(字符型,长度为60)字段,PHOTO(通用型)字段。
  三、编写一个小程序,将位图文件名转换成规范的格式存入NAME字段,并将该文件存入通用型PHOTO字段,源程序如下:
  SET TALK OFF
  USE BMPLIST
  APPE FROM BMP.TXT SDF   &&将BMP.TXT中的每一行作为记录存入NAME字段
  DELE ALL FOR EMPTY(NAME)   &&删除所有的空记录
  PACK
  ML=""
  DO WHILE !EOF()
   REPL NAME WITH ALLTRIM(UPPE(NAME))   &&将所有的记录转换成大写
    NUM=AT(".BMP",NAME)   &&找出后缀BMP在记录中的位置
    IF NUM=0   &&表示该记录记载的是目录而不是文件
      ML=ALLTRIM(NAME)+"\"
    ELSE
  
  REPL NAME WITH ML+SUBS(NAME,1,NUM+3)   &&转换成位图文件含目录的全名
    APPE GENE PHOTO FROM ALLTRIM(NAME)   &&将该位图文件存入PHOTO字段
    ENDIF
    SKIP
  ENDDO
  DELE ALL FOR AT(".BMP",NAME)=0   &&删除只表示目录的记录
  PACK
  RETU
  四、编写显示位图文件的程序:
  SET TALK OFF
  DEFI WIND MAIN TITL "Windows位图浏览";
  FLOA SHAD GROW;
  COLO SCHE 13;
  FONT "宋体",12;
  AT 2,2 SIZE 20,70   &&定义一个窗口用以显示位图
  MOVE WIND MAIN CENT   &&将该窗口置中
  ACTI WIND MAIN   &&打开该窗口
  CLEA
  USE BMPLIST
  COPY TO ARRAY TM FIEL NAME   &&将位图文件名放入数组
  &&定义一个上弹式菜单,以位图文件名作为菜单项
  XX=1
  @3,0 MENU TM,ALEN(TM),10 TITL "位图名称列表"
  DO WHILE .T.
    READ MENU TO XX
    IF XX=0
    EXIT
    ENDIF
    LOCA FOR NAME=TM(XX)
    @0,0 SAY PHOTO
    WAIT "显示"+ALL TRIM(NAME)+"位图文件" WIND
  ENDDO
  SET COLO TO
  SET TALK ON
  CLEA
  CLEA ALL
  RETU
  灵活地运用Foxpro for Windows中提供的GENERAL型字段,我们可以编写和上面相类似的程序来浏览其它的Windows对象,如OFFICE软件中的WORD文件和EXCEL文件等,并可以很方便地在自己的应用程序中实现与这些优秀软件的动态数据交换,有兴趣的朋友不妨一试。