LOGFONTA 構造体 (shtypes.h)
フォントの属性を定義します。
構文
typedef struct tagLOGFONTA {
LONG lfHeight;
LONG lfWidth;
LONG lfEscapement;
LONG lfOrientation;
LONG lfWeight;
BYTE lfItalic;
BYTE lfUnderline;
BYTE lfStrikeOut;
BYTE lfCharSet;
BYTE lfOutPrecision;
BYTE lfClipPrecision;
BYTE lfQuality;
BYTE lfPitchAndFamily;
CHAR lfFaceName[32];
} LOGFONTA;
メンバー
lfHeight
型: LONG
フォントの文字セルまたは文字の高さを論理単位で指定します。 文字の高さの値 (em height とも呼ばれます) は、文字セルの高さの値から内部の先頭の値を引いた値です。 フォント マッパーは、 lfHeight で指定された値を次のように解釈します。
値 | 説明 |
---|---|
> 0 | フォント マッパーは、この値をデバイス単位に変換し、使用可能なフォントのセルの高さと一致します。 |
0 | フォント マッパーは、一致を検索するときに既定の高さの値を使用します。 |
< 0 | フォント マッパーは、この値をデバイス単位に変換し、その絶対値を使用可能なフォントの文字の高さに一致します。 |
すべての高さの比較では、フォント マッパーは、要求されたサイズを超えない最大のフォントを検索します。
このマッピングは、フォントが初めて使用されるときに発生します。
MM_TEXT マッピング モードでは、次の数式を使用して、特定のポイント サイズのフォントの高さを指定できます。
lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);
MulDiv は次のように定義されます。
#define MulDiv(a,b,c) (((a)*(b))/(c))
lfWidth
型: LONG
フォント内の文字の平均幅を論理単位で指定します。 lfWidth が 0 でない場合、デバイスの縦横比は、使用可能なフォントのデジタル化縦横比と照合され、最も近い一致を見つけ、差の絶対値によって決定されます。
lfEscapement
型: LONG
デバイスの文字送りベクターと x 軸との角度を 10 分の 1 度単位で指定します。 エスケープメント ベクターは、テキスト行の基本行と平行です。
lfEscapement メンバーは、エスケープメントと方向の両方を指定します。 lfEscapement と lfOrientation を同じ値に設定する必要があります。
lfOrientation
型: LONG
デバイスの各文字のベース ラインと x 軸との角度を 10 分の 1 度単位で指定します。
lfWeight
型: LONG
0 ~ 1000 の範囲のフォントの太さを指定します。 たとえば、400 は標準で、700 は太字です。 この値が 0 の場合は、既定の重みが使用されます。
次の値は、便宜上 Wingdi.h で定義されています。
値 | Weight |
---|---|
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 |
lfItalic
型: BYTE
斜 体のフォントを指定する場合は TRUE。
lfUnderline
型: BYTE
下 線付きフォントを指定する場合は TRUE。
lfStrikeOut
型: BYTE
取 り消し線のフォントを指定する場合は TRUE。
lfCharSet
型: BYTE
文字セットを指定します。 次の値が定義済みです。
ANSI_CHARSET | BALTIC_CHARSET |
CHINESEBIG5_CHARSET | DEFAULT_CHARSET |
EASTEUROPE_CHARSET | GB2312_CHARSET |
GREEK_CHARSET | HANGUL_CHARSET |
MAC_CHARSET | OEM_CHARSET |
RUSSIAN_CHARSET | SHIFTJIS_CHARSET |
SYMBOL_CHARSET | TURKISH_CHARSET |
韓国語のウィンドウ |
---|
JOHAB_CHARSET |
Middle-Eastern Windows |
---|
HEBREW_CHARSET |
ARABIC_CHARSET |
タイ語ウィンドウ |
---|
THAI_CHARSET |
OEM_CHARSET値は、オペレーティング システムに依存する文字セットを指定します。
DEFAULT_CHARSETは、現在のシステム ロケールに基づく値に設定されます。 たとえば、システム ロケールが英語 (米国) の場合、値はANSI_CHARSET。
他の文字セットを含むフォントは、オペレーティング システムに存在する可能性があります。 アプリケーションが不明な文字セットを持つフォントを使用する場合、そのフォントでレンダリングされる文字列の翻訳や解釈を試みてはいけません。
このメンバーは、フォント マッピング プロセスで重要です。 一貫性のある結果を得るには、特定の文字セットを指定します。 lfFaceName メンバーで書体名を指定する場合は、lfCharSet 値が lfFaceName で指定された書体の文字セットと一致していることを確認します。
lfOutPrecision
型: BYTE
出力精度を指定します。 出力の精度は、要求されたフォントの高さ、幅、文字の向き、エスケープメント、ピッチ、フォントの種類に合わせて出力をどれだけ近づけなければならないかを定義します。 Wingdi.h で定義されている次のいずれかの値を指定できます。
値 | 説明 |
---|---|
OUT_DEFAULT_PRECIS | 既定のフォント マッパーの動作を指定します。 |
OUT_RASTER_PRECIS | システムに同じ名前の複数のフォントが含まれている場合に、フォント マッパーにラスター フォントを選択するように指示します。 |
OUT_STRING_PRECIS | この値はフォント マッパーでは使用されませんが、ラスター フォントを列挙すると返されます。 |
lfClipPrecision
型: BYTE
クリッピング精度を指定します。 クリッピングの精度は、クリッピング領域の一部外にある文字をクリップする方法を定義します。 Wingdi.h で定義されている次の値の 1 つ以上を指定できます。
値 | 説明 |
---|---|
CLIP_DEFAULT_PRECIS | 既定のクリッピング動作を指定します。 |
CLIP_CHARACTER_PRECIS | 使用されていません。 |
CLIP_STROKE_PRECIS | フォント マッパーでは使用されませんが、ラスター、ベクター、または TrueType フォントが列挙されると返されます。 |
lfQuality
型: BYTE
出力品質を指定します。 出力品質では、GDI が論理フォント属性を実際の物理フォントの属性と照合する方法を慎重に定義します。 Wingdi.h で定義されている次のいずれかの値を指定できます。
値 | 説明 |
---|---|
ANTIALIASED_QUALITY | フォントのアンチエイリアシングを有効にします。 この設定を機能させるには、ディスプレイ ドライバーがアンチエイリアステキストをサポートしている必要があります。 |
NONANTIALIASED_QUALITY | HKEY_LOCAL_MACHINE\System\GDI\Fontsmoothing レジストリ サブキーが存在する場合、強制的にドラフト品質を使用します。 |
CLEARTYPE_COMPAT_QUALITY | 互換性のある幅を使用してフォントの ClearType テキストを有効にします。 互換性のある幅では、ClearType 以外のテキストと同じ間隔のテキストが生成されます。 |
CLEARTYPE_QUALITY | フォントの ClearType テキストを有効にします。 この設定を機能させるには、ディスプレイ ドライバーが ClearType テキストをサポートしている必要があります。 |
DEFAULT_QUALITY | フォントの外観は関係ありません。 |
DRAFT_QUALITY | GDI ラスター フォントの場合、スケーリングが有効になります。つまり、使用可能なフォント サイズが増えますが、品質が低くなる可能性があります。 太字、斜体、下線、および取り消し線フォントは、必要に応じて合成されます。 |
lfPitchAndFamily
型: BYTE
フォントのピッチとグループを指定します。 2 つの下位ビットはフォントのピッチを指定し、Wingdi.h で定義されている次のいずれかの値を指定できます。
- DEFAULT_PITCH
- FIXED_PITCH
- MONO_FONT
- VARIABLE_PITCH
- FF_DECORATIVE
- FF_DONTCARE
- FF_MODERN
- FF_ROMAN
- FF_SCRIPT
- FF_SWISS
フォント ファミリは、フォントの外観を一般的な方法で記述します。 これらは、目的の正確な書体が使用できない場合にフォントを指定するためのものです。 フォント ファミリの値は次のとおりです。
値 | 説明 |
---|---|
FF_DECORATIVE | ノベルティ フォント (旧英語など)。 |
FF_DONTCARE | 気にしないか、知らない。 |
FF_MODERN | 一定のストローク幅 (モノスペース)、セリフの有無にかかわらずフォント。 モノスペース フォントは、通常、Pica、Elite、Courier New など、モダンです。 |
FF_ROMAN | 可変ストローク幅 (比例) とセリフを含むフォント (Serif など)。 |
FF_SCRIPT | 手書きのようにデザインされたフォント (スクリプトや筆記体など)。 |
FF_SWISS | ストローク幅 (比例) が可変で、セリフのないフォント (Sans Serif など)。 |
lfFaceName[32]
種類: TCHAR[LF_FACESIZE]
フォントの書体名を指定する null で終わる文字列を指定します。 この文字列の長さは、終端の null 文字を含め、32 文字以内にする必要があります。 EnumFontFamilies 関数を使用すると、現在使用可能なすべてのフォントの書体名を列挙できます。 lfFaceName が空の文字列の場合、GDI は他の指定した属性と一致する最初のフォントを使用します。
注釈
次の状況では、ClearType アンチエイリアシングはサポートされていません。
- テキストはプリンターにレンダリングされます。
- 256 色以下の表示セット。
- テキストはターミナル サーバー クライアントにレンダリングされます。
- フォントが TrueType フォントまたは TrueType アウトラインを持つ Microsoft OpenType フォントではありません。 たとえば、ClearType アンチエイリアシングはサポートされていません。Type 1 フォント、TrueType アウトラインのない Postscript OpenType フォント、ビットマップ フォント、ベクター フォント、およびデバイス フォント。
- フォントには、埋め込みビットマップを含むフォント サイズに対して、調整された埋め込みビットマップがあります。 たとえば、これは一般的に東アジアのフォントで発生します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
Header | shtypes.h (Shtypes.h、Dimm.h を含む) |