TEXTMETRICA 構造体 (wingdi.h)

TEXTMETRIC 構造体には、物理フォントに関する基本情報が含まれています。 すべてのサイズは論理単位で指定されます。つまり、表示コンテキストの現在のマッピング モードによって異なります。

構文

typedef struct tagTEXTMETRICA {
  LONG tmHeight;
  LONG tmAscent;
  LONG tmDescent;
  LONG tmInternalLeading;
  LONG tmExternalLeading;
  LONG tmAveCharWidth;
  LONG tmMaxCharWidth;
  LONG tmWeight;
  LONG tmOverhang;
  LONG tmDigitizedAspectX;
  LONG tmDigitizedAspectY;
  BYTE tmFirstChar;
  BYTE tmLastChar;
  BYTE tmDefaultChar;
  BYTE tmBreakChar;
  BYTE tmItalic;
  BYTE tmUnderlined;
  BYTE tmStruckOut;
  BYTE tmPitchAndFamily;
  BYTE tmCharSet;
} TEXTMETRICA, *PTEXTMETRICA, *NPTEXTMETRICA, *LPTEXTMETRICA;

メンバー

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
Windows の韓国語版:
  • JOHAB_CHARSET
Windows の中東言語エディション:
  • ARABIC_CHARSET
  • HEBREW_CHARSET
Windows のタイ語版:
  • THAI_CHARSET

注釈

注意

wingdi.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして TEXTMETRIC を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
Header wingdi.h (Windows.h を含む)

こちらもご覧ください

フォントとテキストの構造

フォントとテキストの概要

GetTextExtentPoint32

GetTextMetrics

Logfont