ITEEDU

第四章 图形操作函数

第五节 用户对文本字符大小的设置

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