已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 慢性阻塞性肺疾病急性加重期管理方案
- 老年医学科失智症患者护理技巧培训
- 肾内科尿毒症透析管理措施
- 破伤风患者紧急治疗流程指南
- 糖尿病科普知识大纲
- 急诊科急性胰腺炎治疗指南
- 麻醉科腹腔镜手术麻醉措施
- 病毒性肝炎预防控制方案指导
- 急诊内科心肌梗死抢救教程
- 全科医学科冠心病综合治疗方案
- 常见疑似预防接种异常反应诊治原则课件
- 1-中国建筑中建PPT模板
- 《科研诚信与学术规范》学习通课后章节答案期末考试题库2023年
- 国家开放大学《现代教育管理专题》平时作业1-5参考答案
- 动火证施工现场动火证申请书
- 【管理会计师专业能力中级考试案例】
- 呼麦专题知识
- 中考语文非连续性文本阅读10篇专项练习及答案
- 新闻学概论5:新闻与信息、宣传、舆论
- DB31-T 1343-2022 医用超声探头消毒卫生要求
- 24、小数加减法整理和复习课件苏教版五上数学
评论
0/150
提交评论