initgraph(640,480); //在屏幕中央输出字符串 RECTr={0,0,640,480};
drawtext(\//按任意键退出 getch(); closegraph(); }
2.4.3getfont
这个函数用于获取当前字体样式。 voidgetfont(LOGFONT*font); 参数:
font指向LOGFONT结构体的指针。 2.4.4LOGFONT
这个结构体定义了字体的属性。
structLOGFONT{LONGlfHeight;LONGlfWidth,LONGlfEscapement;LONGlfOrientati, LONGlfWeight;BYTElfItalic;BYTElfUnderline,BYTElfStrikeOut; BYTElfCharSet;BYTElfOutPrecision;BYTElfClipPrecision; BYTElfQuality,BYTElfPitchAndFamily; TCHARlfFaceName[LF_FACESIZE];}; 成员
lfHeight指定高度(逻辑单位)。
lfWidth指定字符的平均宽度(逻辑单位)。如果为0,则比例自适应。 lfEscapement字符串的书写角度,单位0.1度,默认为0。 lfOrientation每个字符的书写角度,单位0.1度,默认为0。
lfWeight字符的笔画粗细,范围0~1000,0表示默认粗细,使用数字或下表中定义的宏均可。
宏 FW_DONTCARE
FW_THIN FW_EXTRALIGHT
FW_ULTRALIGHT
粗细值
0 100
200
200
FW_LIGHT
300
4400
5600
600
700
800
800
900
900
FW_NORMAL
00 FW_REGULAR
FW_MEDIUM
00 FW_SEMIBOLD
FW_DEMIBOLD
FW_BOLD FW_EXTRABOLD
FW_ULTRABOLD
FW_HEAVY FW_BLACK
lfItalic指定字体是否是斜体。 lfUnderline指定字体是否有下划线。 lfStrikeOut指定字体是否有删除线。
lfCharSet指定字符集。可以使用以下预定义的值: ANSI_CHARSET BALTIC_CHARSET CHINESEBIG5_CHARSET DEFAULT_CHARSET EASTEUROPE_CHARSET GB2312_CHARSET GREEK_CHARSET HANGUL_CHARSET MAC_CHARSET OEM_CHARSET
RUSSIAN_CHARSET SHIFTJIS_CHARSET SYMBOL_CHARSET TURKISH_CHARSET
其中,OEM_CHARSET表示字符集依赖本地操作系统。
DEFAULT_CHARSET表示字符集基于本地操作系统。例如,系统位置是English(UnitedStates),字符集将设置为ANSI_CHARSET。
lfOutPrecision指定文字的输出精度。输出精度定义输出与所请求的字体高度、宽度、字符方向、行距、间距和字体类型相匹配必须达到的匹配程度。可以是以下值:
值
OUT_DEFAULT_PRECIS
OUT_DEVICE_PRECIS
OUT_OUTLINE_PRECIS
OUT_RASTER_PRECIS
OUT_STRING_PRECIS
OUT_STROKE_PRECIS
OUT_TT_ONLY_PRECIS
OUT_TT_PRECIS
含义
指定默认的映射行为。
当系统包含多个名称相同的字体时,指定设备字体。 指定字体映射选择TrueType和其它的outline-based字体。 当系统包含多个名称相同的字体时,指定光栅字体(即点阵字体)。 这个值并不能用于指定字体映射,只是指定点阵字体枚举数据。 这个值并不能用于指定字体映射,只是指定TrueType和其他的outline-based字体,以及矢量字体的枚举数据。
指定字体映射只选择TrueType字体。如果系统中没有安装TrueType字体,将选择默认操作。
当系统包含多个名称相同的字体时,指定TrueType字体。
lfClipPrecision指定文字的剪辑精度。剪辑精度定义如何剪辑字符的一部分位于剪辑区域之外的字符。可以是以下值:
值
CLIP_DEFAULT_PRECIS
CLIP_STROKE_PRECIS
CLIP_EMBEDDED
含义
指定默认的剪辑行为。
这个值并不能用于指定字体映射,只是指定光栅(即点阵)、矢量或TrueType字体的枚举数据。
当使用内嵌的只读字体时,必须指定这个标志。
如果指定了该值,所有字体的旋转都依赖于坐标系统的方向是逆
CLIP_LH_ANGLES 时针或顺时针。
如果没有指定该值,设备字体始终逆时针旋转,但是其它字体的旋转
依赖于坐标系统的方向。
该设置影响lfOrientation参数的效果。
lfQuality指定文字的输出质量。输出质量定义图形设备界面(GDI)必须尝试将逻辑字体属性与实际物理字体的字体属性进行匹配的仔细程度。可以是以下值:
值
ANTIALIASED_QUALITY
DEFAULT_QUALITY
含义
指定输出质量是抗锯齿的(如果字体支持)。 指定输出质量不重要。
草稿质量。字体的显示质量是不重要的。对于光栅字体(即
DRAFT_QUALITY
点阵字体),缩放是有效的,这就意味着可以使用更多的尺寸,但是显示质量并不高。如果需要,粗体、斜体、下划线和删除线字体会被合成。
NONANTIALIASED_QUALITY
指定输出质量不是抗锯齿的。
正稿质量。指定字体质量比匹配字体属性更重要。对于光栅字体(即点阵字体),缩放是无效的,会选用其最接近的字体大
PROOF_QUALITY
小。虽然选中PROOF_QUALITY时字体大小不能精确地映射,但是输出质量很高,并且不会有畸变现象。如果需要,粗体、斜体、下划线和删除线字体会被合成。
如果ANTIALIASED_QUALITY和NONANTIALIASED_QUALITY都未被选择,抗锯齿效果将依赖于控制面板中字体抗锯齿的设置。
lfPitchAndFamily指定以常规方式描述字体的字体系列。字体系列描述大致的字体外观。字体系列用于在所需精确字体不可用时指定字体。
1~2位指定字体间距,可以是以下值: 值
含义
TCH指定默认间
DEFAULT_PI
距。 FIXED_PITCH
VARIABLE_PITCH
值 FF_DECORATIVE
FF_DONTCA
指定固定间距。 指定可变间距。
4~7位指定字体系列,可以是以下值:
含义
指定特殊字体。例如OldEnglish。 指定字体系列不重要。
RE
FF_MODERN
都是等宽字体。 FF_ROMAN FF_SCRIPT FF_SWISS
指定具有或不具有衬线的等宽字体。例如,Pica、Elite和CourierNew指定具有衬线的等比字体。例如MSSerif。
指定设计为类似手写体的字体。例如Script和Cursive。 指定不具有衬线的等比字体。例如MSSansSerif。
字体间距和字体系列可以用布尔运算符OR连接(即符号|)。
lfFaceName字体名称,名称不得超过31个字符。如果是空字符串,系统将使用第一个满足其它属性的字体。
2.4.5outtext
这个函数用于在当前位置输出字符串。 voidouttext(LPCTSTRstr); voidouttext(TCHARc); 参数:
str待输出的字符串的指针。 c待输出的字符。 说明:
该函数会改变当前位置至字符串末尾。所以,可以连续使用该函数使输出的字符串保持连续。
示例: //输出字符串
chars[]=\outtext(s); //输出字符 charc='A'; outtext(c);
//输出数值,先将数字格式化输出为字符串 chars[5];
sprintf(s,\outtext(s); 2.4.6outtextxy
这个函数用于在指定位置输出字符串。 voidouttextxy(intx,inty,LPCTSTRstr); voidouttextxy(intx,inty,TCHARc); 参数:
x字符串输出时头字母的x轴的坐标值 y字符串输出时头字母的y轴的坐标值。