📄 ddsd.cpp
字号:
#include <iostream.h>
void printCHN16(int xCoor,int yCoor,int color,int distanceHZK16,char *chinese)
/*xCoor,yCoor指出汉字显示的位置,color显示的颜色,distanceHZK16为两个相邻的汉字之间的距离,
chinese是要显示的汉字*/
{
long filePosition; /*存放一个汉字在汉字库中的位置*/
int i,j,k;
int pointX=xCoor,pointY=yCoor; /*给出扫描点的输出位置*/
char tempChar;
int tempBit;
FILE *pointHZK16=fopen("HZK16","rb"); /*打开16X16点阵汉字库*/
while(*chinese)/*遍历所有需要显示的汉字*/
{
if((*chinese) & 0x80) /*判断是否是汉字*/
{
/*获得某汉字在字库中的字模位置*/
filePosition=(long)((*chinese+95)*94+(*(chinese+1)+95))*32;
/*将文件位置指针指向字模的首地址*/
fseek(pointHZK16,filePosition,0);
/*由于16X16点阵中有16行*/
for(i=0;i<16;i++)
{ /*每一行有两个字节*/
for(j=0;j<2;j++)
{ /*得到一个字节*/
tempChar=fgetc(pointHZK16);
tempBit=0x80;/*用来测试字节的位*/
for(k=0;k<8;k++)
{
if(tempBit & tempChar)
/*作"与"位操作,如果是1,就在这个位置上画点*/
putpixel(pointX+k,pointY,color);
tempBit=tempBit>>1;/*测试下一个位*/
}
pointX+=8;/*下一个字节的输出位置*/
}
pointY++; /*下一行的输出位置*/
pointX-=16;
}
pointY=yCoor; /*下一个汉字的输出位置*/
pointX+=16+distanceHZK16;
chinese+=2; /*由于汉字的储存只占二个字节空间*/
}
else/*不是汉字*/
chinese++; /*由于非汉字的储存只占一个字节空间*/
}
fclose(pointHZK16);
return ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -