📄 hzcall3.c
字号:
//********************************************
//文件名:HZCALL3.C
//功能:1. 函数outhz()判断是否为汉字,若是则将
//汉字传给函数disp()处理,若是字符则输出
// 2. 函数disp()调用画点函数输出汉字
//********************************************
#include<GRAPHICS.H>
#include"hzku3.h"
int disp(int,int,unsigned char,
unsigned char,int);
int outhz(int x,int y,char *p,int color)
{
int oldcolor;
oldcolor=getcolor();
setcolor(color);
while(*p)
{
if(((unsigned char)*p>=0xa1&&
(unsigned char)*p<=0xfe)&&
((unsigned char)*(p+1)>=0xa1&&
(unsigned char)*(p+1)<=0xfe))
{
if((x+16-1)>getmaxx()||
(y+16-1)>getmaxy())
return 0;
disp(x,y,*p,*(p+1),color);
p+=2;
x+=16+2;
moveto(x,y);
}
else
{
char q[2];
moveto(x,y);
*q=*p;
*(q+1)='\0';
settextstyle(DEFAULT_FONT,HORIZ_DIR,1);
outtextxy(x,y+4,q);
x+=8+1; p++;
}
}
setcolor(oldcolor);
return 1;
}
int disp(int left,int top,unsigned char byte1,
unsigned char byte2,int color)
{
unsigned char mark;
unsigned k;
int y,i,j,m;
if((byte1>=0xa1&&byte1<=0xfe)&&
(byte2>=0xa1&&byte2<=0xfe))
{
k=byte1+byte2*256;
for(m=0;sb[m]!=0;m++)
{
if(k==sb[m])
break;
}
for(i=0,y=top;i<31;i+=2,y++)
for(mark=0x80,j=0;mark>0;mark=mark>>1,j++)
{
if((buff[m][i]&mark)!=0)
putpixel(left+j,y,color);
if((buff[m][i+1]&mark)!=0)
putpixel(left+j+8,y,color);
}
}
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -