文字列の幅と高さ
アプリケーションでは、個々の文字の文字幅データを取得するだけでなく、文字列全体の幅と高さを計算する必要もあります。 2 つの関数は、文字列幅と高さの測定値 を取得します。GetTextExtentPoint32 と GetTabbedTextExtent です。 文字列にタブ文字が含まれていない場合、アプリケーションは GetTextExtentPoint32 関数を使用して、指定した文字列の幅と高さを取得できます。 文字列にタブ文字が含まれている場合、アプリケーションは GetTabbedTextExtent 関数を呼び出す必要があります。
アプリケーションでは、単語折り返し操作に GetTextExtentExPoint 関数を使用できます。 この関数は、指定したスペース内に収まる指定した文字列から文字数を返します。
フォントアセンダーとディセンダー
一部のアプリケーションでは、フォントの最大アセンダーと降順を使用して、異なるサイズのテキスト行間の行間を決定します。 アプリケーションは、GetTextMetrics 関数を呼び出し、TEXTMETRIC の tmAscent メンバーと tmDescent メンバーを確認することで、これらの値を取得できます。
最大上昇と降下は、文字体裁の上昇と降下とは異なります。 TrueType フォントと OpenType フォントでは、文字体裁の上昇と降下は通常、f グリフの上部と g グリフの下部です。 アプリケーションでは、GetOutlineTextMetrics 関数を呼び出し、OUTLINETEXTMETRIC 構造体の otmMacAscent メンバーと otmMacDescent メンバーの値を確認することで、TrueType フォントまたは OpenType フォントの文字体裁アセンダーと降順を取得できます。
次の図は、 NEWTEXTMETRIC 構造体と OUTLINETEXTMETRIC 構造体で返される垂直テキスト メトリック値の違いを示しています。 (otm で始まる名前は OUTLINETEXTMETRIC 構造体のメンバーです)。
フォントの寸法
アプリケーションは、 GetOutlineTextMetrics 関数を呼び出すことによって、TrueType フォントまたは OpenType フォントの物理ディメンションを取得できます。 アプリケーションは、 GetTextMetrics 関数を呼び出すことによって、他のフォントの物理的なディメンションを取得できます。 出力デバイスのディメンションを確認するために、アプリケーションは GetDeviceCaps 関数を呼び出すことができます。 GetDeviceCaps は、 物理ディメンションと論理ディメンションの両方を返します。
論理インチは、システムが読みやすいフォントを画面上に表示するために使用するメジャーであり、物理インチよりも約 30 ~ 40% 大きくなります。 論理インチを使用すると、画面とプリンターの出力が完全に一致する必要があります。 開発者は、画面上のテキストは、特にグラフィックスがテキストに組み込まれている場合に、ページに表示されるテキストのスケールされたバージョンではないことに注意する必要があります。