前面介绍的settextstyle()函数,可以设定图形方式下输出文本字符这字体和大小但对于笔划型字体(除8*8点阵字以个的字体), 只能在水平和垂直方向以相同的放大倍数放大。
为此Turbo C2.0又提供了另外一个setusercharsize() 函数,对笔划字体可以分别设置水平
和垂直方向的放大倍数。该函数的调用格式为:
void far
setusercharsize(int mulx, int divx, int muly, int divy);
该函数用来设置笔划型字和放大系数,它只有在settextstyle()函数中的charsize为0(或USER_CHAR_SIZE)时才起作用,并且字体为函数settextstyle()规定的字体。
调用函数setusercharsize()后,每个显示在屏幕上的字符都以其缺省大小乘以mulx/divx为输出字符宽,乘以muly/divy为输出字符高。
该函数的用法见下例。
#include<stdio.h> #include<graphics.h> int main() { int gdriver, gmode; gdriver=DETECT; initgraph(&gdriver, &gmode, "c:\\caic\\bgi"); setbkcolor(BLUE); cleardevice(); setfillstyle(1, 2); /*设置填充方式*/ setcolor(WHITE); /*设置白色作图*/ rectangle(100, 100, 330, 380); floodfill(50, 50, 14); /*填充方框以外的区域*/ setcolor(12); /*作图色为淡红*/ settextstyle(1, 0, 8); /*三重笔划字体,放大8倍*/ outtextxy(120, 120, "Very Good"); setusercharsize(2, 1, 4, 1); /*水平放大2倍,垂直放大4倍*/ setcolor(15); settextstyle(3, 0, 5); /*无衬字笔划,放大5倍*/ outtextxy(220, 220, "Very Good"); setusercharsize(4, 1, 1, 1); settextstyle(3, 0, 0); outtextxy(180, 320, "Good"); getch(); closegraph(); return 0; }