荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: zzt (好好学习,天天向上), 信区: Program
标  题: [转载] [转寄] 汉字的显示                             msdr
发信站: BBS 荔园晨风站 (Thu Mar  2 16:33:02 2000), 转信

【 以下文字转载自 zzt 的信箱 】
【 原文由 zhuzutao.bbs@bbs.whnet.edu.cn 所发表 】
发信人: Foks (Foks), 信区: VC
标  题: 汉字的显示
发信站: 武汉白云黄鹤站 (Wed Jun  9 20:18:36 1999), 站内信件

【 在 zhangxinfu (福福) 的大作中提到: 】
: 那位打下高书我如何
: 在西文下直接汉字平



/*--------------------------------------*/
/*                                      */
/* E文DOS下16点阵汉字的显示             */
/*                                      */
/*--------------------------------------*/

/*
 打开汉字库
 假设汉字库的路径为
     c:\ucdos\hzk16
*/

int OpenLIB()  /*可就返回值判断打开字库成功否*/
{
  if((fp=fopen("c:\\ucdos\\hzk16","rb"))==NULL)return(0);
  return(1);
}

/*
 输出到屏幕
 x,y: 显示汉字的起点坐标;
 Wid:字间距;
 Color:汉字的颜色;
 Str:汉字串;
*/

void PutCC16(int x,int y,int Wid,int Color,char *Str)
{
  unsigned Zcode,Bcode;    /* Zcode--区码,Bcode--位码 */
  int i,j,k,Rec;
  long Len;
  char Buf[32];

  while(*Str)     /* 直到字串显示完      */
  {
    if((*Str&0x89)&&(*(Str+1)&0x80))   /* 是汉字     */
    {
      Zcode=(*Str-0xal)&0x7f;
      Bcode=(*(Str+1)-0xal)&0x7f;
      Rec=Zcode*94+Bcode;
      Len=Rec*32L;
      fseek(fp,Len,SEEK-SET);
      fread(Buf,1,32,fp);
      for(i=0,i<16,i++)
 for(j=0;j<2;;j++)
   for(k=0;k<8;k++)
     if(Buf[i*2+j]>>(7-k)&1)
  putpixel(x+j*8+k,j+i,Color);
     x=x+16+Wid;
     Str+=2;
    }
  }
  return;
}

--
※ 来源:.武汉白云黄鹤站 bbs.whnet.edu.cn.[FROM: 202.114.10.144]
--
※ 转寄:.武汉白云黄鹤站 bbs.whnet.edu.cn.[FROM: 210.39.3.50]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.11]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店