LOGFONTW 構造体 (wingdi.h)
LOGFONT 構造体は、フォントの属性を定義します。
構文
typedef struct tagLOGFONTW {
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;
WCHAR lfFaceName[LF_FACESIZE];
} LOGFONTW, *PLOGFONTW, *NPLOGFONTW, *LPLOGFONTW;
メンバーズ
lfHeight
フォントの文字セルまたは文字の高さを論理単位で指定します。 文字の高さの値 (em の高さとも呼ばれます) は、文字セルの高さの値から内部の先頭の値を引いた値です。 フォント マッパーは、lfHeight で指定された値を次のように解釈します。
価値 | 意味 |
---|---|
> 0 | フォント マッパーは、この値をデバイス単位に変換し、使用可能なフォントのセルの高さに一致します。 |
0 | フォント マッパーは、一致を検索するときに既定の高さの値を使用します。 |
< 0 | フォント マッパーは、この値をデバイス単位に変換し、その絶対値を使用可能なフォントの文字の高さに一致します。 |
すべての高さの比較では、フォント マッパーは、要求されたサイズを超えない最大のフォントを検索します。
このマッピングは、フォントが初めて使用されるときに発生します。
MM_TEXT マッピング モードでは、次の数式を使用して、指定したポイント サイズのフォントの高さを指定できます。
lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);
lfWidth
フォント内の文字の平均幅 (論理単位)。 lfWidth
lfEscapement
エスケープメント ベクトルとデバイスの x 軸の間の角度 (10 分の 1)。 エスケープメント ベクターは、テキスト行の基本行と平行です。
グラフィックス モードが GM_ADVANCED に設定されている場合は、文字列の文字の方向角度とは別に、文字列のエスケープ角度を指定できます。
グラフィックス モードを GM_COMPATIBLE に設定すると、lfEscapement
lfOrientation
各文字の基本線とデバイスの x 軸の間の角度 (10 分の 1)。
lfWeight
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 |
lfItalic
TRUEを
lfUnderline
TRUEを
lfStrikeOut
TRUEを
lfCharSet
文字セット。 次の値が定義済みです。
- 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
- VIETNAMESE_CHARSET
- JOHAB_CHARSET
- ARABIC_CHARSET
- HEBREW_CHARSET
- THAI_CHARSET
DEFAULT_CHARSETは、現在のシステム ロケールに基づいて値に設定されます。 たとえば、システム ロケールが英語 (米国) の場合、ANSI_CHARSETとして設定されます。
オペレーティング システムには、他の文字セットを含むフォントが存在する場合があります。 アプリケーションが不明な文字セットを持つフォントを使用する場合、そのフォントでレンダリングされる文字列を翻訳または解釈しないでください。
このパラメーターは、フォント マッピング プロセスで重要です。 フォントの作成時に一貫した結果を得るには、OEM_CHARSETまたはDEFAULT_CHARSETを指定しないでください。
lfOutPrecision
出力精度。 出力精度は、出力が要求されたフォントの高さ、幅、文字の向き、エスケープメント、ピッチ、フォントの種類とどの程度一致する必要があるかを定義します。 次のいずれかの値を指定できます。
価値 | 意味 |
---|---|
OUT_CHARACTER_PRECIS | 使用されません。 |
OUT_DEFAULT_PRECIS | 既定のフォント マッパーの動作を指定します。 |
OUT_DEVICE_PRECIS | システムに同じ名前の複数のフォントが含まれている場合に、フォント マッパーにデバイス フォントを選択するよう指示します。 |
OUT_OUTLINE_PRECIS | この値は、TrueType やその他のアウトライン ベースのフォントから選択するようにフォント マッパーに指示します。 |
OUT_PS_ONLY_PRECIS | PostScript フォントからのみ選択するようにフォント マッパーに指示します。 システムに PostScript フォントがインストールされていない場合、フォント マッパーは既定の動作に戻ります。 |
OUT_RASTER_PRECIS | システムに同じ名前のフォントが複数含まれている場合に、ラスター フォントを選択するようにフォント マッパーに指示します。 |
OUT_STRING_PRECIS | この値はフォント マッパーでは使用されませんが、ラスター フォントが列挙されるときに返されます。 |
OUT_STROKE_PRECIS | この値はフォント マッパーでは使用されませんが、TrueType、その他のアウトライン ベースのフォント、およびベクター フォントが列挙されると返されます。 |
OUT_TT_ONLY_PRECIS | TrueType フォントからのみ選択するようにフォント マッパーに指示します。 システムに TrueType フォントがインストールされていない場合、フォント マッパーは既定の動作に戻ります。 |
OUT_TT_PRECIS | システムに同じ名前のフォントが複数含まれている場合に TrueType フォントを選択するようにフォント マッパーに指示します。 |
アプリケーションでは、OUT_DEVICE_PRECIS、OUT_RASTER_PRECIS、OUT_TT_PRECIS、およびOUT_PS_ONLY_PRECISの値を使用して、オペレーティング システムに指定した名前のフォントが複数含まれている場合にフォント マッパーがフォントを選択する方法を制御できます。 たとえば、オペレーティング システムにラスターおよび TrueType フォームに Symbol というフォントが含まれている場合、OUT_TT_PRECISを指定すると、フォント マッパーは TrueType バージョンを強制的に選択します。 OUT_TT_ONLY_PRECIS指定すると、別の名前の TrueType フォントに置き換える必要がある場合でも、フォント マッパーは強制的に TrueType フォントを選択します。
lfClipPrecision
クリッピングの有効桁数。 クリッピングの精度は、クリッピング領域の一部外にある文字をクリップする方法を定義します。 次の値のうち 1 つ以上を指定できます。
座標系の向きの詳細については、nOrientation パラメーターの説明を参照してください。
価値 | 意味 |
---|---|
CLIP_CHARACTER_PRECIS | 使用されません。 |
CLIP_DEFAULT_PRECIS | 既定のクリッピング動作を指定します。 |
CLIP_DFA_DISABLE | Windows XP SP1: フォントのフォントの関連付けをオフにします。 このフラグは、Windows Server 2003 以降のプラットフォームに影響を与える保証はありません。 |
CLIP_EMBEDDED | 埋め込み読み取り専用フォントを使用するには、このフラグを指定する必要があります。 |
CLIP_LH_ANGLES | この値を使用する場合、すべてのフォントの回転は、座標系の向きが左利きか右利きかによって異なります。使用しない場合、デバイス フォントは常に反時計回りに回転しますが、他のフォントの回転は座標系の向きによって異なります。 |
CLIP_MASK | 使用されません。 |
CLIP_DFA_OVERRIDE | フォントのフォントの関連付けをオフにします。 これはCLIP_DFA_DISABLEと同じですが、状況によっては問題が発生する可能性があります。使用する推奨フラグはCLIP_DFA_DISABLE。 |
CLIP_STROKE_PRECIS | フォント マッパーでは使用されませんが、ラスター、ベクター、または TrueType フォントが列挙されると返されます。 互換性のために、この値はフォントを列挙するときに常に返されます。 |
CLIP_TT_ALWAYS | 使用されません。 |
lfQuality
出力品質。 出力品質は、グラフィックス デバイス インターフェイス (GDI) が論理フォント属性を実際の物理フォントの属性と一致させる必要がある慎重な方法を定義します。 次のいずれかの値を指定できます。
価値 | 意味 |
---|---|
ANTIALIASED_QUALITY | フォントがサポートされていて、フォントのサイズが小さすぎたり大きすぎたりしない場合、フォントは常にアンチエイリアシングされます。 |
CLEARTYPE_QUALITY | 設定すると、ClearType アンチエイリアシング メソッドを使用してテキストがレンダリングされます (可能な場合)。 詳細については、「解説」を参照してください。 |
DEFAULT_QUALITY | フォントの外観は関係ありません。 |
DRAFT_QUALITY | フォントの外観は、PROOF_QUALITYを使用する場合よりも重要ではありません。 GDI ラスター フォントの場合、スケーリングが有効になります。つまり、使用できるフォント サイズが増えますが、品質が低くなる可能性があります。 太字、斜体、下線、取り消し線のフォントは、必要に応じて合成されます。 |
NONANTIALIASED_QUALITY | フォントはアンチエイリアシングされません。 |
PROOF_QUALITY | フォントの文字品質は、論理フォント属性の正確な一致よりも重要です。 GDI ラスター フォントの場合、スケーリングは無効になり、サイズに最も近いフォントが選択されます。 選択したフォント サイズは、PROOF_QUALITYの使用時に正確にマップされない場合がありますが、フォントの品質が高く、外観の歪みは発生しません。 太字、斜体、下線、取り消し線のフォントは、必要に応じて合成されます。 |
ANTIALIASED_QUALITYもNONANTIALIASED_QUALITYも選択されていない場合、ユーザーがコントロール パネルでスムーズ スクリーン フォントを選択した場合にのみ、フォントはアンチエイリアシングされます。
lfPitchAndFamily
フォントのピッチとファミリ。 2 つの下位ビットはフォントのピッチを指定し、次のいずれかの値を指定できます。
- DEFAULT_PITCH
- FIXED_PITCH
- VARIABLE_PITCH
- FF_DECORATIVE
- FF_DONTCARE
- FF_MODERN
- FF_ROMAN
- FF_SCRIPT
- FF_SWISS
フォント ファミリは、フォントの外観を一般的な方法で表します。 これらは、目的の正確な書体が使用できない場合にフォントを指定することを目的としています。 フォント ファミリの値は次のとおりです。
価値 | 意味 |
---|---|
FF_DECORATIVE | ノベルティ フォント。 古い英語が一例です。 |
FF_DONTCARE | 既定のフォントを使用します。 |
FF_MODERN | 一定のストローク幅 (モノスペース)、セリフの有無に関係なくフォント。 通常、モノスペース フォントはモダンです。 例として、Pica、Elite、CourierNew があります。 |
FF_ROMAN | 可変ストローク幅 (比例) とセリフを持つフォント。 MS Serif が一例です。 |
FF_SCRIPT | 手書きのようにデザインされたフォント。 スクリプトと筆記体が例です。 |
FF_SWISS | ストローク幅 (比例) が可変で、セリフのないフォント。 MS Sans Serif が一例です。 |
lfFaceName[LF_FACESIZE]
フォントの書体名を指定する null で終わる文字列。 この文字列の長さは、終了
備考
次の状況では、ClearType アンチエイリアシングはサポートされていません。
- テキストはプリンターに表示されます。
- 256 色以下の表示セット。
- テキストはターミナル サーバー クライアントにレンダリングされます。
- フォントが TrueType フォントでも、TrueType アウトラインを持つ OpenType フォントでありません。 たとえば、ClearType アンチエイリアシングはサポートされていません。Type 1 フォント、TrueType アウトラインのない Postscript OpenType フォント、ビットマップ フォント、ベクター フォント、デバイス フォントなどです。
- フォントには、埋め込みビットマップを含むフォント サイズに合わせて、埋め込みビットマップが調整されています。 たとえば、これは一般的に東アジアのフォントで発生します。
手記
wingdi.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして LOGFONT を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリ |UWP アプリ] |
ヘッダー | wingdi.h (Windows.h を含む) |
関連項目
CreateFont の
CreateFontIndirect の
EnumFontFamiliesEx の