文字の幅
アプリケーションは、テキストの文字列をページ幅または列幅に合わせるなどのタスクを実行するときに、文字幅データを取得する必要があります。 アプリケーションで文字幅データを取得するために使用できる関数は 4 つあります。 これらの関数のうち 2 つは文字の進み幅を取得し、そのうちの 2 つの関数は実際の文字幅データを取得します。
アプリケーションでは 、GetCharWidth32 関数と GetCharWidthFloat 関数を使用して、文字列内の個々の文字または記号の事前幅を取得できます。 前方向の幅は、テキスト文字列内の次の文字を印刷する前に、ビデオ ディスプレイ上のカーソルまたはプリンターの印刷ヘッドが進む必要がある距離です。 GetCharWidth32 関数は、事前の幅を整数値として返します。 より大きな精度が必要な場合、アプリケーションは GetCharWidthFloat 関数を使用して、小数部の事前幅の値を取得できます。
アプリケーションは、 GetCharABCWidths 関数と GetCharABCWidthsFloat 関数を使用して、実際の文字幅データ を 取得できます。 GetCharABCWidthsFloat 関数は、すべてのフォントで動作します。 GetCharABCWidths 関数は、TrueType フォントと OpenType フォントでのみ動作します。 TrueType フォントと OpenType フォントの詳細については、「 ラスター、ベクター、TrueType、および OpenType フォント」を参照してください。
次の図は、文字幅の 3 つのコンポーネントを示しています。
A の間隔は、文字を配置する前に現在の位置に追加する幅です。 B の間隔は、文字自体の幅です。 C の間隔は、文字の右側の空白です。 全体の進み幅は、A + B + C の合計を計算することによって決定されます。 文字セルは、フォント内の各文字または記号を囲む虚数四角形です。 文字は文字セルにオーバーハングまたはアンダーハングする可能性があるため、A と C の増分の一方または両方が負の数になる場合があります。