void PrintChar(int cx,int cy,char c,unsigned char Fcolor,unsigned char Bcolor,int flag) { int offset,x,y; char far *TempPtr; unsigned char bit_mask; TempPtr=RomCharPtr+(c<<3); offset=(cy<<8)+(cy<<6)+cx; for(y=0;y<8;y++) { bit_mask=0x80; for(x=0;x<8;x++) { if((*TempPtr&bit_mask)) *(VideoBufferPtr+offset+x)=Fcolor; else if(flag==1) *(VideoBufferPtr+offset+x)=Bcolor; bit_mask=(bit_mask>>1); } offset+=320; TempPtr++; } }
说明:
cx,cy 是字符在屏幕上的坐标。
c 字符的ASCII码。
Fcolor,Bcolor 分别是字符的前景和背景颜色。
flag 打印标志,当flag=1时显示字符的背景色,否则打印的字符具有透明效果。
----------------解决方案--------------------------------------------------------