C言語のデフォルトフォント、Windows CreateFont: 自分だけのフォントの作成

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
);

次の表にパラメータの詳細を示します。

  1. nHeight:フォントサイズ
  2. nWidth:フォントの幅
  3. エスケープメント:フォントの傾斜
  4. nOrientation: フォントの回転角度
  5. 文字の太さ
  6. 斜体になっているか
  7. 下線を引くかどうか
  8. fdwStrikeOut:取り消し線をつけるかどうか
  9. fdwCharSet:文字コード
  10. fdwOutputPrecision: 出力精度
  11. fdwClipPrecision:クリップの精度
  12. fdwQuality:フォントの品質
  13. fdwPitchAndFamily: フォントの文字間隔とファミリー
  14. 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関数で削除して、 メモリを解放する。

bannerAds