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)
読み取り専用の埋め込みフォント
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 など。
成功すると作成された論理フォントのハンドルが返ります。
失敗すると 0 (NULL) が返ります。
Windows NT/2000/XP: 拡張エラー情報を取得するには、 GetLastError 関数を使います。
フォントが不要になった場合には、 DeleteObject 関数で削除しなければなりません。