在C语言中,使用Windows API函数CreateFont可以创建自定义的字体。
CreateFont函数的原型如下:
HFONT CreateFont( int nHeight, int nWidth, int nEscapement, int nOrientation, int fnWeight, DWORD fdwItalic, DWORD fdwUnderline, DWORD fdwStrikeOut, DWORD fdwCharSet, DWORD fdwOutputPrecision, DWORD fdwClipPrecision, DWORD fdwQuality, DWORD fdwPitchAndFamily, LPCTSTR lpszFace );
参数说明如下:
-
nHeight:字体的高度
-
nWidth:字体的宽度
-
nEscapement:字体的倾斜度
-
nOrientation:字体的旋转度
-
fnWeight:字体的粗细程度
-
fdwItalic:是否为斜体
-
fdwUnderline:是否带下划线
-
fdwStrikeOut:是否带删除线
-
fdwCharSet:字符集
-
fdwOutputPrecision:输出精度
-
fdwClipPrecision:剪辑精度
-
fdwQuality:字体质量
-
fdwPitchAndFamily:字体的字间距和家族
-
lpszFace:字体名称
例如,创建一个红色、斜体、粗体、大小为20的字体,可以使用以下代码:
#includeint main() { HWND hWnd = GetConsoleWindow(); HDC hdc = GetDC(hWnd); HFONT hFont = CreateFont(20, 0, 0, 0, FW_BOLD, TRUE, FALSE, FALSE, ANSI_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, TEXT("Arial")); SelectObject(hdc, hFont); SetTextColor(hdc, RGB(255, 0, 0)); TextOut(hdc, 10, 10, TEXT("Hello, world!"), 13); ReleaseDC(hWnd, hdc); DeleteObject(hFont); return 0; }
上述代码使用了CreateFont函数创建了一个红色、斜体、粗体、大小为20的Arial字体,然后使用SelectObject函数将该字体选入设备上下文(hdc)中,最后使用TextOut函数在指定位置输出文本。
注意:在使用CreateFont函数创建完字体后,需要使用DeleteObject函数将其删除,以释放内存。