在Windows内部,字体是以一个名为LOGFONT的结构来表示,结构体原型:
typedef struct tagLOGFONT {
LONG lfHeight; //以逻辑单位指定字体字符元(character cell)或字符的高度。
LONG lfWidth; //以逻辑单位指定字体字符的平均宽度
LONG lfEscapement; //以十分之一度为单位指定每一行文本输出时相对于页面底端的角度
LONG lfOrientation; //以十分之一度为单位指定字符基线相对于页面底端的角度
LONG lfWeight; //指定字体重量。在Windows中,字体重量这个术语用来指代字体的粗细程度。
BYTE lfItalic; //当lfItalic为TRUE时使用斜体
BYTE lfUnderline; //当lfUnderline为TRUE时给字体添加下划线
BYTE lfStrikeOut; //当lfStrikeOut为TRUE时给字体添加删除线
BYTE lfCharSet; //指定字符集。
BYTE lfOutPrecision; //指定输出精度。输出精度定义了输出与所要求的字体高度、宽度、字符方向等的接近程度。
BYTE lfClipPrecision; //指定剪辑精度。剪辑精度定义了当字符的一部分超过剪辑区域时对字符的剪辑方式.
BYTE lfQuality; //定义输出质量。输出质量定义了图形设备接口在匹配逻辑字体属性到实际的物理字体的所使用的方式.
BYTE lfPitchAndFamily; //指定字体的字符间距和族
TCHAR lfFaceName[LF_FACESIZE]; //一个指定以NULL结尾的字符串的指针,它指定的所用的字体名。
} LOGFONT;
//修改字体:
HFONT hFont = GetStockObject(DEFAULT_GUI_FONT);
LOGFONT lgFont = {0};
GetObject(hFont, sizeof(lgFont), &lgFont);
DeleteObject(hFont);
hFont = NULL;
lgFont.lfHeight *= 2;
hFont = CreateFontIndirect(&lgFont);