在Windowsxp中运行TC3。0,会出现这样的现象:1窗口运行:字体是宋体,导致有很多字符不能放出来。很难看!!2全屏运行:字体又重影,一个比较小的字号在前面覆盖后面正常的字体。很难看!!!怎么解决?空闲灵敏度是什么东东?教教我吧。谢了!!!!提问者:Corn_Zhang-秀才三级最佳答案一.C语言中字体的问题C语言中有两种显示方式,即文本方式和图形方式。
就我所知,只能在图形方式下控制字体。先看一下C中定义的几种字体名称索引值字体说明DEFAULT_FONT08x8bit-mappedfontTRIPLEX_FONT1StrokedtriplexfontSMALL_FONT2StrokedsmallfontSANS_SERIF_FONT3Strokedsans-seriffontGOTHIC_FONT4Strokedgothicfont(字体说明中的英文解释无须明白,在例子的演示中去看)请看例子(摘自TC3。
0的联机帮助文件)例一.#include#include#include#include/*thenamesofthetextstylessupported*/char*fname[]={"DEFAULTfont","TRIPLEXfont","SMALLfont","SANSSERIFfont","GOTHICfont"};intmain(void){/*requestautodetection*/intgdriver=DETECT,gmode,errorcode;intstyle,midx,midy;intsize=1;/*initializegraphicsandlocalvariables*/initgraph(&gdriver,&gmode,"");/*readresultofinitialization*/errorcode=graphresult();if(errorcode!=grOk)/*anerroroccurred*/{printf("Graphicserror:%s
",grapherrormsg(errorcode));printf("Pressanykeytohalt:");getch();exit(1);/*terminatewithanerrorcode*/}midx=getmaxx()/2;midy=getmaxy()/2;settextjustify(CENTER_TEXT,CENTER_TEXT);/*loopthroughtheavailabletextstyles*/for(style=DEFAULT_FONT;style<=GOTHIC_FONT;style++){cleardevice();if(style==TRIPLEX_FONT)size=4;/*selectthetextstyle*/settextstyle(style,HORIZ_DIR,size);/*outputamessage*/outtextxy(midx,midy,fname[style]);getch();}/*cleanup*/closegraph();return0;}原代码讲解:上面的例子中,控制字体用settextstyle函数,style参数是选择字体的,关于其它的参数说明可参考联机帮助。
Outtextxy函数用来输出文本。如果老兄是想显示各种不同字体的汉字话,那得麻烦点。这里不想多说,只提供两种方案(1)利用UCDOS的汉字特显技术,用C中的printf函数带上特殊参数即可,具体可参考有关资料(比如《电脑爱好者》中曾讲过)(2)在图形模式下,调用字体文件,用C函数putpixel输出。
推荐参考书[1]《C语言最新编程技巧200例》(修订本)鲁沐浴主编电子工业出版社1997二.C中的颜色问题颜色问题不是一两句话能将清楚的,建议你了解一点计算机是如何处理颜色的。下面的回答主要以TC3。0中的例子为主。颜色可分为前景色(即字体颜色)和背景颜色。
在C中颜色的设置分为文本模式下的设置和图形模式下的设置。下面先将在文本模式下的设置1.文本模式下的设置先看文本模式下的色彩设定76543210(Bbbbffff)上面是一个字节(共有8位),0——3位设定前景色,4——6为设定背景色。第7为控制字符是否闪烁。
请看下例例二.#includeintmain(void){inti,j;clrscr();for(i=0;i<9;i++){textcolor(i+1);textbackground(i);for(j=0;j<80;j++)cprintf("C");cprintf("
");}return0;}原代码解释:textcolor函数用来设定字符颜色,由于它只设定字符颜色,因此参数中(一个整数)只有0——3和第7为有效。
textbackground函数用来设定背景色,参数中4——6位有效。要想用一个函数同时设定前景色和背景色以及是否闪烁,可用textattr函数,看下例例三.cludeintmain(void){inti;clrscr();for(i=0;i<9;i++){textattr(i+((i+1)<<4));cprintf("Thisisatest
");}return0;}提醒:在文本模式下输出字符用cprintf函数,不用printf函数。
2.图形模式下的设置例四.#include#include#include#includeintmain(void){/*selectadriverandmodethatsupports*//*multipledrawingcolors。
*/intgdriver=EGA,gmode=EGAHI,errorcode;intcolor,maxcolor,x,y;charmsg[80];/*initializegraphicsandlocalvariables*/initgraph(&gdriver,&gmode,"");/*readresultofinitialization*/errorcode=graphresult();if(errorcode!=grOk)/*anerroroccurred*/{printf("Graphicserror:%s
",grapherrormsg(errorcode));printf("Pressanykeytohalt:");getch();exit(1);/*terminatewithanerrorcode*/}/*maximumcolorindexsupported*/maxcolor=getmaxcolor();/*forcenteringtextmessages*/settextjustify(CENTER_TEXT,CENTER_TEXT);x=getmaxx()/2;y=getmaxy()/2;/*loopthroughtheavailablecolors*/for(color=1;color<=maxcolor;color++){/*clearthescreen*/cleardevice();/*selectanewbackgroundcolor*/setcolor(color);setbkcolor(color+1);/*outputamesssage*/sprintf(msg,"Color:%d",color);outtextxy(x,y,msg);getch();}/*cleanup*/closegraph();return0;}原代码说明:setcolor设定字体颜色,setbkcolor设定背景色提醒:输出字符用outtextxy函数小结:这里所叙述的只是一小部分,要学好这方面的内容,准备一本参考手册(可用联机帮助),多上机实践。
全部