一.c语言中字体的问题
c语言中有两种显示方式,即文本方式和图形方式。就我所知,只能在图形方式下控制字体.
先看一下c中定义的几种字体
名称 索引值 字体说明
default_font 0 8x8 bit-mapped font
triplex_font 1 stroked triplex font
small_font 2 stroked small font
sans_serif_font 3 stroked sans-serif font
gothic_font 4 stroked gothic font
(字体说明中的英文解释无须明白,在例子的演示中去看)
请看例子(摘自tc3.0的联机帮助文件)
例一.
#include
#include
#include
#include
/* the names of the text styles supported */
char *fname[] = { "default font",
"triplex font",
"small font",
"sans serif font",
"gothic font"
};
int main(void)
{
/* request auto detection */
int gdriver = detect, gmode, errorcode;
int style, midx, midy;
int size = 1;
/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "");
/* read result of initialization */
errorcode = graphresult();
if (errorcode != grok) /* an error occurred */
{
printf("graphics error: %s ", grapherrormsg(errorcode));
printf("press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}
midx = getmaxx() / 2;
midy = getmaxy() / 2;
settextjustify(center_text, center_text);
/* loop through the available text styles */
for (style=default_font; style<=gothic_font; style++)
{
cleardevice();
if (style == triplex_font)
size = 4;
/* select the text style */
settextstyle(style, horiz_dir, size);
/* output a message */
outtextxy(midx, midy, fname[style]);
getch();
}
/* clean up */
closegraph();
return 0;
}
源代码讲解:
上面的例子中,控制字体用settextstyle函数,style参数是选择字体的,关于其它的参数说明可参考联机帮助。outtextxy函数用来输出文本。
如果老兄是想显示各种不同字体的汉字话,那得麻烦点。这里不想多说,只提供两种方案
(1) 利用ucdos的汉字特显技术,用c中的printf函数带上特殊参数即可,具体可参考有关资料(比如《电脑爱好者》中曾讲过)
(2) 在图形模式下,调用字体文件,用c函数putpixel输出。推荐参考书
[1]《c语言最新编程技巧200例》(修订本)鲁沐浴主编 电子工业出版社 1997