TEXTMETRICW 構造体 (wingdi.h)
TEXTMETRIC 構造体には、物理フォントに関する基本情報が含まれています。 すべてのサイズは論理単位で指定されます。つまり、表示コンテキストの現在のマッピング モードに依存します。
構文
typedef struct tagTEXTMETRICW {
LONG tmHeight;
LONG tmAscent;
LONG tmDescent;
LONG tmInternalLeading;
LONG tmExternalLeading;
LONG tmAveCharWidth;
LONG tmMaxCharWidth;
LONG tmWeight;
LONG tmOverhang;
LONG tmDigitizedAspectX;
LONG tmDigitizedAspectY;
WCHAR tmFirstChar;
WCHAR tmLastChar;
WCHAR tmDefaultChar;
WCHAR tmBreakChar;
BYTE tmItalic;
BYTE tmUnderlined;
BYTE tmStruckOut;
BYTE tmPitchAndFamily;
BYTE tmCharSet;
} TEXTMETRICW, *PTEXTMETRICW, *NPTEXTMETRICW, *LPTEXTMETRICW;
メンバー
tmHeight
文字の高さ (上昇 + 降下)。
tmAscent
文字のアセント (基準線の上の単位)。
tmDescent
文字の降下 (基準線の下の単位)。
tmInternalLeading
tmHeight メンバーによって設定された境界内の先頭 (スペース) の量。 この領域には、アクセント 記号やその他の分音記号が含まれる場合があります。 デザイナーは、このメンバーを 0 に設定できます。
tmExternalLeading
アプリケーションが行間に追加する余分な先頭 (スペース) の量。 この領域はフォントの外側であるため、マークは含まれていないため、OPAQUE モードまたは TRANSPARENT モードのテキスト出力呼び出しによって変更されません。 デザイナーは、このメンバーを 0 に設定できます。
tmAveCharWidth
フォント内の文字の平均幅 (通常は文字 x の幅として定義されます)。 この値には、太字または斜体の文字に必要なオーバーハングは含まれません。
tmMaxCharWidth
フォントで幅が最も広い文字の幅。
tmWeight
フォントの太さ。
tmOverhang
一部の合成フォントに追加される、文字列あたりの割り増しの幅。 太字や斜体などの一部の属性を合成する場合、グラフィックス デバイス インターフェイス (GDI) またはデバイスでは、文字単位と文字列単位の両方で文字列に幅を追加する必要がある場合があります。 たとえば、GDI では、各文字の間隔を広げ、オフセット値でオーバースリックすることで、文字列を太字にします。文字列をシャーリングしてフォントを斜体にします。 どちらの場合も、基本文字列の後にオーバーハングがあります。 太字の文字列の場合、オーバーハングはオーバーストロークがオフセットされる距離です。 斜体の文字列の場合、オーバーハングは、フォントの上部がフォントの下部を越えてせん断される量です。
tmOverhang メンバーを使用すると、アプリケーションは、1 つの文字に対する GetTextExtentPoint32 関数呼び出しによって返される文字幅の量が実際の文字幅であり、文字列ごとの余分な幅がどのくらいであるかを判断できます。 実際の幅は、範囲からオーバーハングを引いた値です。
tmDigitizedAspectX
そのフォントのデザイン対象となったデバイスにおける水平アスペクト。
tmDigitizedAspectY
そのフォントのデザイン対象となったデバイスにおける垂直アスペクト。 tmDigitizedAspectX メンバーと tmDigitizedAspectY メンバーの比率は、フォントが設計されたデバイスの縦横比です。
tmFirstChar
フォントで定義されている最初の文字の値。
tmLastChar
フォントで定義された最後の文字の値。
tmDefaultChar
フォントにない文字に置き換えられる文字の値。
tmBreakChar
テキストの位置揃えの単語区切りを定義するために使用される文字の値。
tmItalic
斜体フォントが 0 以外の場合に指定します。
tmUnderlined
0 以外の場合は、下線付きフォントを指定します。
tmStruckOut
0 以外の場合は取り消し線フォント。
tmPitchAndFamily
物理フォントのピッチ、テクノロジ、ファミリに関する情報を指定します。
このメンバーの 4 つの下位ビットは、フォントのピッチとテクノロジに関する情報を指定します。 定数は、4 つのビットごとに定義されます。
定数 | 説明 |
---|---|
TMPF_FIXED_PITCH | このビットが設定されている場合、フォントは可変ピッチ フォントになります。 このビットがクリアされている場合、フォントは固定ピッチ フォントです。 これらの意味は定数名の意味とは逆であることに注意してください。 |
TMPF_VECTOR | このビットが設定されている場合、フォントはベクター フォントになります。 |
TMPF_TRUETYPE | このビットが設定されている場合、フォントは TrueType フォントです。 |
TMPF_DEVICE | このビットが設定されている場合、フォントはデバイス フォントです。 |
アプリケーションでは、これらの下位ビットでエンコードされた品質を慎重にテストし、任意の仮定を行う必要はありません。 たとえば、独自のビットを設定するだけでなく、TrueType フォントと PostScript フォントでは、TMPF_VECTOR ビットが設定されます。 モノスペース ビットマップ フォントでは、これらの下位ビットがすべてクリアされます。プロポーショナル ビットマップ フォントは、TMPF_FIXED_PITCH ビットを設定します。 Postscript プリンター デバイスのフォントは、TMPF_DEVICE、TMPF_VECTOR、およびTMPF_FIXED_PITCH ビットを設定します。
tmPitchAndFamily の 4 つの上位ビットは、フォントのフォント ファミリを指定します。 アプリケーションでは、0xF0値とビットごとの AND 演算子を使用して tmPitchAndFamily の 4 つの下位ビットをマスクし、フォント ファミリ名と直接比較して同じ一致を見つけることができる値を取得できます。 フォント ファミリの詳細については、 LOGFONT 構造体の説明を参照してください。
tmCharSet
フォントの文字セット。 文字セットには、次のいずれかの値を指定できます。
- 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
注釈
注意
wingdi.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして TEXTMETRIC を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
Header | wingdi.h (Windows.h を含む) |