功能:
设置当前字体样式,字体颜色另外由setcolor() 或 settextcolor() 设置。
备注:
另有接收类型为 const wchar_t* 的 typeface 参数的重载。
声明:
void setfont(
int height,
int width,
const char* typeface,
PIMAGE pimg = NULL
);
void setfont(
int height,
int width,
const char* typeface,
int escapement,
int orientation,
int weight,
bool italic,
bool underline,
bool strikeOut,
PIMAGE pimg = NULL
);
void setfont(
int height,
int width,
const char* typeface,
int escapement,
int orientation,
int weight,
bool italic,
bool underline,
bool strikeOut,
BYTE charSet,
BYTE outPrecision,
BYTE clipPrecision,
BYTE quality,
BYTE pitchAndFamily,
PIMAGE pimg = NULL
);
void setfont(
const LOGFONT *font,
PIMAGE pimg = NULL
);
参数:
height
指定高度(逻辑单位)。如果为正,表示指定的高度包括字体的默认行距;如果为负,表示指定的高度只是字符的高度。
width
字符的平均宽度(逻辑单位)。如果为 0,则比例自适应。
typeface
字体名称。对于此参数均有const char*和const wchar_t*两个版本,以上函数声明仅列出一种。提供两个接口是为了方便能同时使用两种不同的字符集。
常用的字体名称有:宋体,楷体_GB2312,隶书,黑体,幼圆,新宋体,仿宋_GB2312,Fixedsys,Arial,Times New Roman
具体可用名字,可查阅你系统已安装字体。
escapement
字符串的书写角度,单位为 0.1°。
orientation
每个字符的书写角度,单位为 0.1°。
weight
字符的笔画粗细,范围 0~1000。0 表示默认粗细。使用数字或下表中定义的宏均可:
宏 | 粗细值 |
FW_DONTCARE | 0 |
FW_THIN | 100 |
FW_EXTRALIGHT | 200 |
FW_ULTRALIGHT | 200 |
FW_LIGHT | 300 |
FW_NORMAL | 400 |
FW_REGULAR | 400 |
FW_MEDIUM | 500 |
FW_SEMIBOLD | 600 |
FW_DEMIBOLD | 600 |
FW_BOLD | 700 |
FW_EXTRABOLD | 800 |
FW_ULTRABOLD | 800 |
FW_HEAVY | 900 |
FW_BLACK | 900
|
italic
是否斜体,true / false。
underline
是否有下划线,true / false。
strikeOut
是否有删除线,true / false。
charSet
指定字符集(详见 LOGFONT 结构体)。
outPrecision
指定文字的输出精度(详见 LOGFONT 结构体)。
clipPrecision
指定文字的剪辑精度(详见 LOGFONT 结构体)。
quality
指定文字的输出质量(详见 LOGFONT 结构体)。
pitchAndFamily
指定以常规方式描述字体的字体系列(详见 LOGFONT 结构体)。
font
指向 LOGFONT 结构体的指针。
返回值:
(无)
示例:
// 设置当前字体为高 16 像素的“宋体”(忽略行距)。
setfont(-16, 0,"宋体");
outtextxy(0, 0,"测试");
// 设置输出效果为抗锯齿(LOGFONTA是MBCS版本,LOGFONTW是UTF16版本)
LOGFONTA f;
getfont(&f); // 获取当前字体设置
f.lfHeight = 48; // 设置字体高度为 48(包含行距)
strcpy(f.lfFaceName, "黑体"); // 设置字体为“黑体”
f.lfQuality = ANTIALIASED_QUALITY; // 设置输出效果为抗锯齿
setfont(&f); // 设置字体样式
outtextxy(0,50,"抗锯齿效果");