CreateFont(A)

論理フォントを作成します。

HFONT CreateFontA(
    int   nHeight,           // 文字セルまたは文字の高さ
    int   nWidth,            // 平均文字幅
    int   nEscapement,       // 文字送りの方向とX軸との角度
    int   nOrientation,      // ベースラインとX軸との角度
    int   nWeight,           // フォントの太さ
    DWORD fdwItalic,         // イタリック体指定
    DWORD fdwUnderline,      // 下線付き指定
    DWORD fdwStrikeOut,      // 打ち消し線付き指定
    DWORD fdwCharSet,        // キャラクタセット
    DWORD fdwOutPrecision,   // 出力精度
    DWORD fdwClipPrecision,  // クリッピングの精度
    DWORD fdwQuality,        // 出力品質
    DWORD fdwPitchAndFamily, // ピッチとファミリ
    PCTSTR pszFaceName       // フォント名
);

GDI32.DLL

引数

nHeight

フォントの文字セルまたは文字の高さを論理単位で指定します。

正数を指定した場合は文字セルの高さとして解釈されます。 0 を指定するとデフォルトの高さとして解釈されます。負数を指定するとその絶対値が文字の高さ(文字セルの高さから内部レディング (アクセント記号などのためのスペース) の高さを引いたもの)として解釈されます。フォントマッパーは、要求されたサイズを超えない最大のフォントを探します。

nWidth

フォントの平均文字幅を論理単位で指定します。

0 を指定すると、 nHeight パラメータで指定したフォントの高さに合った幅が自動的に指定されます。

nEscapement

文字送りの方向と X 軸との角度を、10 分の 1 度単位で指定します。文字送りの方向は、テキストの列のベースラインと平行です。

Windows NT/2000/XP: GM_ADVANCED グラフィックモードでは、 nEscapement パラメータと nOrientation パラメータを個々に設定できます。 GM_COMPATIBLE グラフィックモードでは、 nEscapement パラメータは文字送りの方向と文字の方向の両方を定義します。 nEscapement パラメータと nOrientation パラメータの値は同じにしてください。

Windows 95/98/Me: nEscapement パラメータは文字送りの方向と文字の方向の両方を定義します。nEscapement パラメータと nOrientation パラメータの値は同じにしてください。

nOrientation

各文字のベースラインと X 軸との角度を、 10 分の 1 度単位で指定します。

nWeight

フォントの太さを、 0 から 1000 までの値で指定します。0 を指定すると、デフォルトの太さが選択されます。

VC++では次の定数名が定義されています。

定数名
FW_DONTCARE0
FW_THIN100
FW_EXTRALIGHT, FW_ULTRALIGHT200
FW_LIGHT300
FW_NORMAL, FW_REGULAR400
FW_MEDIUM500
FW_SEMIBOLD, FW_DEMIBOLD600
FW_BOLD700
FW_EXTRABOLD, FW_ULTRABOLD800
FW_HEAVY, FW_BLACK900
fdwItalic

イタリック体にするかどうかを指定します。 1 (TRUE) を指定するとイタリック体になります。 0 (FALSE) を指定するとイタリック体になりません。

fdwUnderline

下線付きのフォントを選択するかどうかを指定します。 1 (TRUE) を指定すると下線が付けられます。 0 (FALSE) を指定すると下線が付けられません。

fdwStrikeOut

打ち消し線付きフォントを選択するかどうかを指定します。 1 (TRUE) を指定すると打ち消し線が付けられます。 0 (FALSE) を指定すると打ち消し線が付けられません。

fdwCharSet

キャラクタセットの値を指定します。代表的なものを以下に示します

キャラクタセット
ANSI_CHARSET (Windows 文字セット)0
DEFAULT_CHARSET (指定なし)1
SYMBOL_CHARSET2
SHIFTJIS_CHARSET (シフトJIS文字セット)128
OEM_CHARSET (OEM 文字セット)255
fdwOutPrecision

出力精度を指定します。次の値のいずれかを指定します。

意味
0 (OUT_DEFAULT_PRECIS)

デフォルトの動作に任せます。

1 (OUT_STRING_PRECIS)

使用しません。(ただし、ラスタフォントが列挙されるときには返されます。)

2 (OUT_CHARACTER_PRECIS)

使用しません。

3 (OUT_STROKE_PRECIS)

Windows NT/2000/XP: 使用しません。(ただし、TrueType フォントやその他のアウトラインベースのフォント、ベクトルフォント(ベクタフォント)が列挙されるときには返されます。)

Windows 95/98/Me: ベクトルフォントを選択するよう指示します。(TrueType フォントやベクトルフォントが列挙されるときにも返されます。)

4 (OUT_TT_PRECIS)

同じ名前のフォントが複数あった場合は、TrueType フォントを選択するよう指示します。

5 (OUT_DEVICE_PRECIS)

同じ名前のフォントが複数あった場合は、デバイスフォントを選択するよう指示します。

6 (OUT_RASTER_PRECIS)

同じ名前のフォントが複数あった場合は、ラスタフォントを選択するよう指示します。

7 (OUT_TT_ONLY_PRECIS)

TrueType フォントだけを選択するよう指示します。システムに TrueType フォントが組み込まれていないときは、デフォルトの動作になります。

8 (OUT_OUTLINE_PRECIS)

Windows NT/2000/XP: TrueType フォントやその他のアウトラインベースのフォントを選択するよう指示します。

Windows 95/98/Me: 使用しません。

fdwClipPrecision

クリッピングの精度を指定します。この値は、文字の一部がクリッピング領域の外にはみ出たときに、その文字をクリップする方法を定義します。次の値のいずれか、または組み合わせを指定します。

意味
0 (CLIP_DEFAULT_PRECIS)

デフォルトの動作に任せます。

1 (CLIP_CHARACTER_PRECIS)

使用しません。

2 (CLIP_STROKE_PRECIS)

使用しません。(ただし、ラスタフォント、ベクトルフォント、TrueType フォントが列挙されるときには返されます。)

15 (CLIP_MASK)

使用しません。

16 (CLIP_LH_ANGLES)

座標系が右手座標系か左手座標系かによって、すべてのフォントの回転方向を決めるようにします。この値を指定しない場合は、デバイスフォントは常に反時計回りに、その他のフォントは座標系の向きしたがって回転します。

32 (CLIP_TT_ALWAYS)

使用しません。

128 (CLIP_EMBEDDED)

読み取り専用の埋め込みフォント

fdwQuality

出力品質を指定します。この値は、 GDI が、論理フォントの属性と実際の物理フォントの属性とをどの程度まで一致させるかを定義するものです。

意味
0 (DEFAULT_QUALITY)

フォントの文字品質は重視されません。

1 (DRAFT_QUALITY)

フォントの文字品質は PROOF_QUALITY を使用したときほどは重視されません。

2 (PROOF_QUALITY)

フォントの文字品質が、論理フォントの属性を正確に一致させることよりも重視されます。

fdwPitchAndFamily

フォントのピッチとファミリを指定します。ピッチを指定する値とフォントファミリを指定する値をひとつずつ OR 演算子“|”で組み合わせて指定します。

ピッチを指定するのに以下の値のいずれかを指定します。

意味
0 (DEFAULT_PITCH) デフォルト
1 (FIXED_PITCH) 固定幅
2 (VARIABLE_PITCH) 可変幅

フォントファミリを指定するのに以下の値のいずれかを指定します。

意味
0 (FF_DONTCARE)

一般的なファミリを指定。フォントに関する情報が存在しない場合や、重要ではないときに指定される。

16 (FF_ROMAN)

セリフ(H,I などの上下にあるひげ飾り)のあるプロポーショナルフォントを指定。 Times New Roman など。

32 (FF_SWISS)

セリフ(H,I などの上下にあるひげ飾り)のないプロポーショナルフォントを指定。 Arial など。

48 (FF_MODERN)

セリフ(H,I などの上下にあるひげ飾り)のある、またはセリフのないモノスペースフォントを指定。 Pica, Elite, Courier New など。

64 (FF_SCRIPT)

手書き風のデザインのフォントを指定。 Script, Cursive など。

80 (FF_DECORATIVE)

装飾付きフォントを指定。 Old English など。

pszFaceName

フォントのタイプフェイス名を表す文字列のアドレスを指定します。

0 (NULL) や空文字列のアドレスを指定すると、ほかのメンバで指定された属性に合うフォントの中から最初に見つけられたフォントが選択されます。

戻り値

成功すると作成された論理フォントのハンドルが返ります。

失敗すると 0 (NULL) が返ります。

Windows NT/2000/XP: 拡張エラー情報を取得するには、 GetLastError 関数を使います。

解説

フォントが不要になった場合には、 DeleteObject 関数で削除しなければなりません。

対応情報

Windows 95 以降 / Windows NT 3.1 以降