主页->库函数目录->文字输出相关函数->setfont
功能:
这个函数用于设置当前字体样式。
声明:
void setfont(
int nHeight,
int nWidth,
LPCSTR lpszFace,
PIMAGE pimg = NULL
);
void setfont(
int nHeight,
int nWidth,
LPCSTR lpszFace,
int nEscapement,
int nOrientation,
int nWeight,
bool bItalic,
bool bUnderline,
bool bStrikeOut,
PIMAGE pimg = NULL
);
void setfont(
int nHeight,
int nWidth,
LPCSTR lpszFace,
int nEscapement,
int nOrientation,
int nWeight,
bool bItalic,
bool bUnderline,
bool bStrikeOut,
BYTE fbCharSet,
BYTE fbOutPrecision,
BYTE fbClipPrecision,
BYTE fbQuality,
BYTE fbPitchAndFamily,
PIMAGE pimg = NULL
);
void setfont(
const LOGFONT *font,
PIMAGE pimg = NULL
);
参数:
nHeight
指定高度(逻辑单位)。如果为正,表示指定的高度包括字体的默认行距;如果为负,表示指定的高度只是字符的高度。
nWidth
字符的平均宽度(逻辑单位)。如果为 0,则比例自适应。
lpszFace
字体名称。对于此参数均有LPCSTR和LPCWSTR两个版本,以上函数声明仅列出一种。提供两个接口是为了方便能同时使用两种不同的字符集。
常用的字体名称有:宋体,楷体_GB2312,隶书,黑体,幼圆,新宋体,仿宋_GB2312,Fixedsys,Arial,Times New Roman
具体可用名字,可查阅你系统已安装字体。
nEscapement
字符串的书写角度,单位 0.1 度。
nOrientation
每个字符的书写角度,单位 0.1 度。
nWeight
字符的笔画粗细,范围 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
|
bItalic
是否斜体,true / false。
bUnderline
是否有下划线,true / false。
bStrikeOut
是否有删除线,true / false。
fbCharSet
指定字符集(详见 LOGFONT 结构体)。
fbOutPrecision
指定文字的输出精度(详见 LOGFONT 结构体)。
fbClipPrecision
指定文字的剪辑精度(详见 LOGFONT 结构体)。
fbQuality
指定文字的输出质量(详见 LOGFONT 结构体)。
fbPitchAndFamily
指定以常规方式描述字体的字体系列(详见 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,"抗锯齿效果");