前面介绍的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;
}