图形模式下的汉字显示

图形模式下的汉字显示

 

图形模式下的汉字显示图形模式下的汉字显示我们在编写一些应用软件时,为了使软件更为通俗浅显、易学易用,具备汉字的用户界面是必不可少的条件。在文本模式下,只要有汉字操作系统的支持,显示汉字是不成问题的。只要用printf或cprintf就可以了。#include void main()图形模式下的汉字显示{printf("我正在学习C语言!");}
图形模式下的汉字显示  在图形模式下显示汉字就稍稍麻烦些。可幸的是有很多人从事这一问题的研究,并开发了一些用于汉字显示的函数。这些函数不需要汉字系统的支持,但用到其中的字库文件。如UCDOS的HZK16。
图形模式下的汉字显示  汉字显示的第一步是打开字库文件。 
图形模式下的汉字显示图形模式下的汉字显示  函数: int OpenHz(const char *Hz16Path); 功能:打开字库文件Hz16Pathint handle; /**//*打开的字库文件指针*/int OpenHz(const char *Hz16Path)图形模式下的汉字显示{return (handle=open(Hz16Path,O_RDONLY|O_BINARY));} 打开字库文件后,就可以用下面介绍的函数显示16点阵的汉字。
图形模式下的汉字显示  函数: int WrtHz16(int x,int y,int z,int color,char *p); 功能:在(x,y)用color颜色显示汉字串p,汉字之间的空格数为z。intWrtHz16(int x, int y,int z,int color,char *p)
图形模式下的汉字显示图形模式下的汉字显示图形模式下的汉字显示{
图形模式下的汉字显示图形模式下的汉字显示unsigned int i,c1,c2,f=0; /**//*x,y:write at (x,y);*/
图形模式下的汉字显示图形模式下的汉字显示int rec,i1,i2,i3; /**//*z:space between;*/
图形模式下的汉字显示图形模式下的汉字显示long l; /**//*color:txt color*/
图形模式下的汉字显示图形模式下的汉字显示char by[32]; /**//*p:HZ str*/
图形模式下的汉字显示图形模式下的汉字显示if( handle<0 ) return -1; while((i=*p++)!=0)图形模式下的汉字显示{
图形模式下的汉字显示if(i>0xa1)
图形模式下的汉字显示图形模式下的汉字显示if(f==0)图形模式下的汉字显示{
图形模式下的汉字显示c1=(i-0xa1)&0x07f;
图形模式下的汉字显示f=1;
图形模式下的汉字显示}
图形模式下的汉字显示图形模式下的汉字显示else图形模式下的汉字显示{
图形模式下的汉字显示c2=(i-0xa1)&0x07f;
图形模式下的汉字显示f=0;
图形模式下的汉字显示rec=c1*94+c2;
图形模式下的汉字显示l=rec*32L;
图形模式下的汉字显示lseek(handle,l,SEEK_SET);
图形模式下的汉字显示read(handle,by,32);
图形模式下的汉字显示for(i1=0;i1<16;i1++)
图形模式下的汉字显示for(i2=0;i2<2;i2++)
图形模式下的汉字显示for(i3=0;i3<8;i3++)
图形模式下的汉字显示if(GetBit(by[i1*2+i2],7-i3))
图形模式下的汉字显示putpixel(x+i2*8+i3,y+i1,color);
图形模式下的汉字显示x=x+z+16;
图形模式下的汉字显示}
图形模式下的汉字显示}
图形模式下的汉字显示return(x);
图形模式下的汉字显示}
图形模式下的汉字显示函数GetBit定义如下:
图形模式下的汉字显示  函数: int GetBit(unsigned char c,int n); 功能:取得汉字的点阵数据。
图形模式下的汉字显示int GetBit(unsigned char c,int n)
图形模式下的汉字显示图形模式下的汉字显示图形模式下的汉字显示{
图形模式下的汉字显示return((c>>n)&1);
图形模式下的汉字显示}
图形模式下的汉字显示汉字显示结束,应该关闭字库文件。
图形模式下的汉字显示void CloseHz(void)
图形模式下的汉字显示图形模式下的汉字显示图形模式下的汉字显示{
图形模式下的汉字显示close( handle );
图形模式下的汉字显示}
图形模式下的汉字显示#include "\Caic\Include\Hz.h"
图形模式下的汉字显示#include 
图形模式下的汉字显示#include const char* Hz16Path = "\\UCDOS\\Hzk16.";
图形模式下的汉字显示const char* HzStr = "苦丁香C语言辅助学习软件";
图形模式下的汉字显示图形模式下的汉字显示void main()图形模式下的汉字显示{
图形模式下的汉字显示int gr=DETECT,gm;
图形模式下的汉字显示initgraph(&gr,&gm,"\\Caic\\Bgi");
图形模式下的汉字显示OpenHz( Hz16Path );
图形模式下的汉字显示Wrt16Hz(20,20,4,RED,HzStr);
图形模式下的汉字显示CloseHz();
图形模式下的汉字显示getch();
图形模式下的汉字显示closegraph();
图形模式下的汉字显示}显示24点阵及放大汉字
图形模式下的汉字显示  下面探讨一下如何显示24点阵及放大汉字。24点阵字库也可在任意一种汉字系统中找到。如UCDOS的HZK24S。
图形模式下的汉字显示函数: int WrtHz24(int x,int y,int z,int color,int m,\int n,char *p); 功能:显示24点阵及放大汉字。
图形模式下的汉字显示int WrtHz24(int x,int y,int z,int color,int m,int n,char *p)
图形模式下的汉字显示图形模式下的汉字显示图形模式下的汉字显示{
图形模式下的汉字显示图形模式下的汉字显示unsigned int i,c1,c2,f=0; /**//*z: 汉字字符间的空格*/
图形模式下的汉字显示图形模式下的汉字显示int i1,i2,i3,i4,i5,rec; /**//*x,y: 先是位置(x,y)*/
图形模式下的汉字显示图形模式下的汉字显示long l; /**//*color:汉字颜色*/
图形模式下的汉字显示图形模式下的汉字显示char by[72]; /**//*m: x 方向的放大倍数*/
图形模式下的汉字显示图形模式下的汉字显示/**//*n: y 方向的放大倍数*/
图形模式下的汉字显示图形模式下的汉字显示if( handle<0 ) return -1; /**//*p: 显示汉字串*/ while((i=*p++)!=0)图形模式下的汉字显示{
图形模式下的汉字显示if(i>0xa1)
图形模式下的汉字显示图形模式下的汉字显示if(f==0)图形模式下的汉字显示{
图形模式下的汉字显示c1=(i-0xa1)&0x7f;
图形模式下的汉字显示f=1;
图形模式下的汉字显示}
图形模式下的汉字显示图形模式下的汉字显示else图形模式下的汉字显示{
图形模式下的汉字显示c2=(i-0xa1)&0x7f;
图形模式下的汉字显示f=0;
图形模式下的汉字显示rec=(c1-15)*94+c2;
图形模式下的汉字显示l=rec*72L;
图形模式下的汉字显示lseek(handle,l,SEEK_SET);
图形模式下的汉字显示read(handle,by,72);
图形模式下的汉字显示for(i1=0;i1<24*m;i1=i1+m)
图形模式下的汉字显示for(i4=0;i4 for(i2=0;i2<=2;i2++)
图形模式下的汉字显示for(i3=0;i3<8;i3++)
图形模式下的汉字显示if(GetBit(by[i1/m*3+i2],7-i3))
图形模式下的汉字显示for(i5=0;i5 putpixel(x+i1+i4,y+i2*8*n+i3*n+i5,color);
图形模式下的汉字显示x=x+24*m+z;
图形模式下的汉字显示}
图形模式下的汉字显示}
图形模式下的汉字显示return(x);
图形模式下的汉字显示} 使用Wrt24Hz的例子:#include "\Caic\Include\Hz.h"
图形模式下的汉字显示#include 
图形模式下的汉字显示#include const char* Hz24Path = "C:\\Ucdos\\fnt\\hzk24s."
图形模式下的汉字显示const char* HzStr = "苦丁香C语言辅助学习软件";
图形模式下的汉字显示图形模式下的汉字显示void main()图形模式下的汉字显示{
图形模式下的汉字显示int gr=DETECT,gm;
图形模式下的汉字显示initgraph(&gr,gm,"\\Caic\\Bgi");
图形模式下的汉字显示OpenHz( Hz24Path );
图形模式下的汉字显示图形模式下的汉字显示Wrt24Hz(20,20, /**//*先是在(x,y)*/
图形模式下的汉字显示图形模式下的汉字显示4, /**//*汉字间的空格为4*/
图形模式下的汉字显示图形模式下的汉字显示RED, /**//*用红色显示*/
图形模式下的汉字显示图形模式下的汉字显示2, /**//*x 方向放大2倍*/
图形模式下的汉字显示图形模式下的汉字显示4, /**//*y 方向放大4倍*/
图形模式下的汉字显示图形模式下的汉字显示HzStr); /**//*显示字符串*/
图形模式下的汉字显示CloseHz();
图形模式下的汉字显示getch();
图形模式下的汉字显示closegraph();
图形模式下的汉字显示
图形模式下的汉字显示
图形模式下的汉字显示
图形模式下的汉字显示 posted on 2006-03-02 21:57 Aween's Blog 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/aween/archive/2006/03/02/341560.html

上一篇:Java - 工具类1(包装类) July 10,2019


下一篇:JQuery