首页 | 程式人生 | 原创下载 | 技术文档 | 留言我们 | 关于我们 |
一个在图形模式下显示汉字的C程序例子
作者:
SZK8888
2003-11-05
/*注:编译运行时程序目录下需要 字库文件 HZK12,在UCDOS CCDOS 还有许多地方可以找到这个文件的*/ #include <dos.h> void DISPLAY_HZ(); /*-------------------------------------------------------------------------*/ main() initgraph(&gdriver,&gmode,""); DISPLAY_HZ(200,50,1,1,14,10,"Hello, world! 图形模式下显示汉字");
void DISPLAY_HZ(
FILE *fp; char buffer[24]; /*buffer用来存储一个汉字*/ register m,n,i,j,k; unsigned char qh,wh; unsigned long offset; /*长整型 以支持长文件*/ char EC[2];
if(*s<0) /*是汉字的话*/ wh=*(s+1)-0xa0; offset=(94*(qh-1)+(wh-1))*24L; /*计算该汉字在字库中偏移量*/
fread(buffer,24,1,fp);
for(n=0;n<Height;n++) /**/ for(j=0;j<2;j++) /*每个行的个2字节*/ for(k=0;k<8;k++) /*每个字节8位*/ for(m=0;m<Width;m++) /**/ if (((buffer[i*2+j]>>(7-k))&0x1)!=NULL) putpixel(cx+8*j*Width+k*Width+m,cy+i*Height+n,color); s+=2; /*因为一个汉字内码占用两个字节,所以s必须加2 */ cx+=w; /*字间隔*/ } else outtextxy(cx,cy+3,EC); cx+=w-6; }
} /*-------------------------------------------------------------------------*/ |
![]()
|