当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

<b>图形情势下的汉字显示</b>[VC/C++编程]

赞助商链接



  本文“<b>图形情势下的汉字显示</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

我们在编写一些利用软件时,为了使软件更为通俗浅显、易学易用,具有汉字的用户界面是必不可少的条件.在文本情势下,只要有汉字操作系统的支持,显示汉字是不成问题的.只要用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);
}


  以上是“<b>图形情势下的汉字显示</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .