在C语言中,使用Windows API函数CreateFont可以创建自定义的字体。
CreateFont函数的原型如下:
```c
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的字体,可以使用以下代码:
```c
#include
int 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函数将其删除,以释放内存。