图形模式下的汉字显示.doc_第1页
图形模式下的汉字显示.doc_第2页
图形模式下的汉字显示.doc_第3页
图形模式下的汉字显示.doc_第4页
图形模式下的汉字显示.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图形模式下的汉字显示我们在编写一些应用软件时,为了使软件更为通俗浅显、易学易用,具备汉字的用户界面是必不可少的条件。在文本模式下,只要有汉字操作系统的支持,显示汉字是不成问题的。只要用printf或cprintf就可以了。#include void main()printf(我正在学习语言!);在图形模式下显示汉字就稍稍麻烦些。可幸的是有很多人从事这一问题的研究,并开发了一些用于汉字显示的函数。这些函数不需要汉字系统的支持,但用到其中的字库文件。如的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 by32; /*p:HZ str*/if( handle0xa1)if(f=0)c1=(i-0xa1)&0x07f;f=1;elsec2=(i-0xa1)&0x07f;f=0;rec=c1*94+c2;l=rec*32L;lseek(handle,l,SEEK_SET);read(handle,by,32);for(i1=0;i116;i1+)for(i2=0;i22;i2+)for(i3=0;i3n)&1);汉字显示结束,应该关闭字库文件。void CloseHz(void)close( handle );#include CaicIncludeHz.h#include #include const char* Hz16Path = UCDOSHzk16.;const char* HzStr = 苦丁香语言辅助学习软件;void main()int gr=DETECT,gm;initgraph(&gr,&gm,CaicBgi);OpenHz( Hz16Path );Wrt16Hz(20,20,4,RED,HzStr);CloseHz();getch();closegraph();显示点阵及放大汉字下面探讨一下如何显示24点阵及放大汉字。24点阵字库也可在任意一种汉字系统中找到。如的HZK24S。函数: int WrtHz24(int x,int y,int z,int color,int m,int n,char *p); 功能:显示点阵及放大汉字。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 by72; /*m: x 方向的放大倍数*/*n: y 方向的放大倍数*/if( handle0xa1)if(f=0)c1=(i-0xa1)&0x7f;f=1;elsec2=(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;i124*m;i1=i1+m)for(i4=0;i4M;I4+)for(i2=0;i2=2;i2+)for(i3=0;i38;i3+)if(GetBit(byi1/m*3+i2,7-i3)for(i5=0;i5N;I5+)putpixel(x+i1+i4,y+i2*8*n+i3*n+i5,color);x=x+24*m+z;return(x); 使用Wrt24Hz的例子:#include CaicIncludeHz.h#include #include const char* Hz24Path = C:Ucdosfnthzk24s.const char* HzStr = 苦丁香语言辅助学习软件;void main()int gr=DETECT,gm;initgraph(&gr,gm,CaicBgi);OpenHz( Hz24Path );Wrt24Hz(20,20, /*先是在(x,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论