パラメータ
nHeight
フォントの文字セルまたは文字の高さを論理単位で指定する。
文字の高さ(em height としても知られている)とは、文字セルの高さから内部レディング(アクセント記号などのためのスペース)の高さを
引いたもの。フォントマッパーは、nHeight パラメータに指定された値を次のように処理する。
値
|
処理
|
>0 |
指定された値をデバイス単位に変換し、それを利用可能な各フォントのセルの高さと比較する。 |
0 |
フォントを探す際に、既定の高さを使う。 |
<0 |
指定された値をデバイス単位に変換し、その絶対値を利用可能な各フォントの文字の高さと比較する。 |
どちらの高さの比較を行う場合にも、フォントマッパーは、要求されたサイズを超えない最大のフォントを探する。
このマッピングは、フォントが初めて使用されたときに行われる。
MM_TEXT マッピングモードでは、次の式を利用して、ポイント数からフォントの高さへの変換ができる。
nHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY),
72)
nWidth
フォントの平均文字幅を論理単位で指定する。0 を指定すると、条件に最も近い値が選択される。
条件に最も近い値は、利用可能な各フォントの現在のデバイスでの縦横比とデジタル化された縦横比の差の絶対値を比較することにより決
定される。
nEscapement
文字送りの方向と X 軸との角度を 10 分の 1 度単位で指定する。
文字送りの方向とは、テキスト行のベースラインの方向のこと。
Windows NT/2000:GM_ADVANCED
グラフィックモードでは、文字列の文字送りの方向(nEscapement パラメータ)を、文字列内の
各文字の向き(nOrientation パラメータ)とは独立して指定できる。
GM_COMPATIBLE グラフィックモードでは、文字送りの方向と文字の向きの両方ともが nEscapement
パラメータにより決まる。
nEscapement パラメータと nOrientation パラメータには、同じ値を指定してください。
Windows 95:文字送りの方向も文字の向きも nEscapement パラメータにより決まる。
nEscapement パラメータと nOrientation パラメータには、同じ値を指定する。
nOrientation
各文字のベースラインと X 軸との角度を 10 分の 1 度単位で指定する。
fnWeight
フォントの太さを表す 0 から 1000 までの範囲内の値を指定する。
たとえば、400 を指定すると標準の太さになり、700 を指定すると太字になる。0 を指定すると、既定の太さが選択される。
次の定数を利用すると便利である。
値
|
太さ
|
FW_DONTCARE |
0 |
FW_THIN |
100 |
FW_EXTRALIGHT |
200 |
FW_ULTRALIGHT |
200 |
FW_LIGHT |
300 |
FW_NORMAL |
400 |
FW_REGULAR |
400 |
FW_MEDIUM |
500 |
FW_SEMIBOLD |
600 |
FW_DEMIBOLD |
600 |
FW_BOLD |
700 |
FW_EXTRABOLD |
800 |
FW_ULTRABOLD |
800 |
FW_HEAVY |
900 |
FW_BLACK |
900 |
fdwItalic
斜体にするかどうかを指定する。True を指定すると、斜体になる。
fdwUnderline
下線を付けるかどうかを指定する。True を指定すると、下線付きになる。
fdwStrikeOut
取り消し線を付けるかどうかを指定する。True を指定すると、取り消し線が付く。
fdwCharSet
フォントの文字セットを指定する。次の値が定義されている。
ANSI_CHARSET(Windows 文字セット)
BALTIC_CHARSET
CHINESEBIG5_CHARSET
DEFAULT_CHARSET(指定なし)
EASTEUROPE_CHARSET
GB2312_CHARSET
GREEK_CHARSET
HANGUL_CHARSET
MAC_CHARSET
OEM_CHARSET(OEM 文字セット)
RUSSIAN_CHARSET
SHIFTJIS_CHARSET(シフト JIS 文字セット)
SYMBOL_CHARSET
TURKISH_CHARSET
Windows NT/2000 および中東版 Windows 3.1 以降:
HEBREW_CHARSET
ARABIC_CHARSET
Windows NT/2000 およびタイ語版 Windows 3.1 以降:
THAI_CHARSET
OEM 文字セット(OEM_CHARSET)の文字は、オペレーティングシステムに依存する。
Windows 95/98:DEFAULT_CHARSET
を指定すると、フォントの名前とサイズに、完全に論理フォントを表すものを指定することができ
る。指定したフォント名のフォントが存在しなかった場合、あらゆる文字セットが指定したフォントの代替として使用される可能性がある。
このため、予期しない結果となるのを避けるために、できるだけ DEFAULT_CHARSET は使わないこと。
Windows NT/2000:DEFAULT_CHARSET
を指定すると、文字セットは現在のシステムロケールに基づいた値に設定される。
たとえば、システムロケールが[英語(U.S.)]の場合なら、ANSI_CHARSET に設定される。
fdwOutputPrecision
出力精度を指定する。出力精度は、実際の出力が、要求されたフォントの高さ、幅、文字の向き、文字送りの方向、ピッチ、およびフォ
ント名にどの程度一致していなければならないかを示する。次の値のいずれかを指定する。
値
|
意味
|
OUT_CHARACTER_PRECIS |
使用しない。 |
OUT_DEFAULT_PRECIS |
既定の動作に任せる。 |
OUT_DEVICE_PRECIS |
同じ名前のフォントが複数あった場合は、デバイスフォントを選択するよう指示する。 |
OUT_OUTLINE_PRECIS |
Windows NT/2000:TrueType
フォントやその他のアウトラインベースのフォントを選択するよう指示する。 |
OUT_RASTER_PRECIS |
同じ名前のフォントが複数あった場合は、ラスタフォントを選択するよう指示する。 |
OUT_STRING_PRECIS |
使用しない(ただし、ラスタフォントが列挙されるときには、この値が返される)。 |
OUT_STROKE_PRECIS |
Windows
NT/2000:使用しない(ただし、TrueType フォントやその他のアウトラインベースのフォント、 |
|
ベクタフォントが列挙されるときには、この値が返される)。 |
|
Windows
95/98:ベクタフォントを選択するよう指示する(TrueType フォントやベクタフォントが列挙される |
|
ときにも、この値が返される)。 |
OUT_TT_ONLY_PRECIS |
TrueType
フォントだけを選択するよう指示する。システムに TrueType フォントが組み込まれていないとき |
|
は、既定の動作になる。 |
OUT_TT_PRECIS
|
同じ名前のフォントが複数あった場合は、TrueType フォントを選択するよう指示する。
|
fdwClipPrecision
クリッピング精度を指定する。クリッピング精度とは、文字の一部がクリッピング領域の外にはみ出たときに、その文字をクリップする方法を
定義するものである。次の値のいずれか、またはその組み合わせを指定できる。
値
|
意味
|
CLIP_DEFAULT_PRECIS |
既定の動作に任せる。 |
CLIP_CHARACTER_PRECIS |
使用しない。 |
CLIP_STROKE_PRECIS |
使用しない(ただし、ラスタフォント、ベクタフォント、TrueType フォントが列挙されるときには、この値が |
|
返される)。 |
|
Windows
NT/2000:互換性のために、フォントを列挙するときには必ずこの値が返される。 |
CLIP_MASK |
使用しない。 |
CLIP_EMBEDDED |
読み取り専用の埋め込みフォントを使用するには、このフラグを指定しなければならない。 |
CLIP_LH_ANGLES |
この値を使うと、すべてのフォントの回転方向が座標系の方向(右手座標系か左手座標系か)によっ |
|
て決められるようになる。 |
|
この値を指定しない場合は、デバイスフォントは常に反時計回りに、その他のフォントは座標系の方向に |
|
従って回転する。 |
CLIP_TT_ALWAYS |
使用しない。 |
fdwQuality
出力品質を指定する。
出力品質とは、GDI が、論理フォントの属性と実際の物理フォントの属性とをどの程度まで一致させなければならないかを定義する。
次の値のいずれを指定する。
値
|
意味
|
ANTIALIASED_QUALITY |
Windows NT 4.0
以降:アンチエイリアス処理(スムージング)がサポートされているフォントについて |
|
は、サイズが小さすぎたり大きすぎる場合には、フォントにアンチエイリアス処理が施される。 |
|
Plus!をインストールした Windows
95 以降:そのフォントでアンチエイリアス処理がサポートされているこ |
|
とに加えて、ディスプレイが 8 ビット(256
色)以上表示でき、単一平面デバイスでなくてはならない。 |
|
パレットディスプレイであってはならず、複数ディスプレイモニタのセットアップになっていてはならない。 |
|
さらに、DIBSection
で使用するよりも前に、スクリーンデバイスコンテキストでその TrueType フォントを |
|
選択しておかなければならない。以上の条件が満たされていなければ、アンチエイリアス処理は行われ |
|
ない。 |
DEFAULT_QUALITY |
フォントの文字品質は重視されない。 |
DRAFT_QUALITY |
フォントの文字品質は、PROOF_QUALITY
を使用したときほどは重視されない。GDI のラスタフォント |
|
については、スケーリングが可能になり、使用可能なフォントサイズが増えますが、品質はかなり低くな |
|
る場合もある。必要であれば、太字、斜体、下線付き、取り消し線付きなどのフォントが合成される。 |
NONANTIALIASED_QUALITY |
Plus!をインストールした Windows
95、Windows 98、Windows NT 4.0、および Windows 2000:ア |
|
ンチエイリアス処理は一切行われない。 |
PROOF_QUALITY |
フォントの文字品質が、論理フォントの属性を正確に一致させることよりも重視される。 |
|
GDI
のラスタフォントについては、スケーリングが可能になり、最もサイズの近いフォントが選択される。 |
|
PROOF_QUALITY
を指定した場合、選択されたフォントのサイズは正確には一致しない場合がある |
|
が、フォントの品質は高く、文字の形が歪むことはありません。必要であれば、太字、斜体、下線付 |
|
き、取り消し線付きなどのフォントが合成される。 |
fdwPitchAndFamily
フォントのピッチとファミリを指定する。下位 2 ビットでフォントのピッチを指定する。次の値のいずれかを使う。
DEFAULT_PITCH(既定)
FIXED_PITCH(固定幅)
VARIABLE_PITCH(可変幅)
上位 4 ビットでフォントファミリを指定する。次の値のいずれかを使う。
値
|
説明
|
FF_DECORATIVE |
装飾付きフォントである。Old English
フォントなどがある。 |
FF_DONTCARE |
ファミリを指定しない。または、ファミリが不明である。 |
FF_MODERN |
固定ストローク幅を持つ、セリフ(文字のひげ飾り)付きまたはセリフなしのフォント。Pica、Elite、Courier NewR |
|
などがある。 |
FF_ROMAN |
可変ストローク幅を持つセリフ付きフォントである。MSR Serif などがある。 |
FF_SCRIPT |
手書き風のフォントである。Script、Cursive などがある。 |
FF_SWISS |
可変ストローク幅を持つセリフなしフォントである。MS Sans Serif などがある。 |
fdwPitchAndFamily パラメータには、通常、ピッチ定数とファミリ定数を OR 演算子で組み合わせて指定する。
フォントファミリは、フォントの見た目を定義する。指定したフォント名のフォントが利用できないときに、フォントの選択に使われる。
lpszFace
フォントの名前が入った NULL で終わる文字列へのポインタを指定する。
文字列の長さは、終端の NULL 文字も含めて 32 文字以下にしなければならない。
EnumFontFamilies 関数を使うと、現在利用可能なフォントの名前を列挙できる。
NULL
ポインタや空の文字列へのポインタを指定すると、ほかのパラメータで指定した条件に合うフォントの中から最初に見つかったフォント
が選択される。
戻り値
関数が成功すると、論理フォントのハンドルが返る。
関数が失敗すると、NULL が返る。
Windows NT/2000:拡張エラー情報を取得するには、GetLastError 関数を使う。 |