在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的字體,可以使用以下代碼:
#include <windows.h>
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函數將其刪除,以釋放內存。