次の方法で共有


文字の幅

アプリケーションは、テキストの文字列をページ幅または列幅に合わせるなどのタスクを実行するときに、文字幅データを取得する必要があります。 アプリケーションで文字幅データを取得するために使用できる関数は 4 つあります。 これらの関数のうち 2 つは文字の進み幅を取得し、そのうちの 2 つの関数は実際の文字幅データを取得します。

アプリケーションでは 、GetCharWidth32 関数と GetCharWidthFloat 関数を使用して、文字列内の個々の文字または記号の事前幅を取得できます。 前方向の幅は、テキスト文字列内の次の文字を印刷する前に、ビデオ ディスプレイ上のカーソルまたはプリンターの印刷ヘッドが進む必要がある距離です。 GetCharWidth32 関数は、事前の幅を整数値として返します。 より大きな精度が必要な場合、アプリケーションは GetCharWidthFloat 関数を使用して、小数部の事前幅の値を取得できます。

アプリケーションは、 GetCharABCWidths 関数と GetCharABCWidthsFloat 関数を使用して、実際の文字幅データ 取得できます。 GetCharABCWidthsFloat 関数は、すべてのフォントで動作します。 GetCharABCWidths 関数は、TrueType フォントと OpenType フォントでのみ動作します。 TrueType フォントと OpenType フォントの詳細については、「 ラスター、ベクター、TrueType、および OpenType フォント」を参照してください。

次の図は、文字幅の 3 つのコンポーネントを示しています。

illustration showing the a spacing, b spacing, and c spacing of two adjacent characters

A の間隔は、文字を配置する前に現在の位置に追加する幅です。 B の間隔は、文字自体の幅です。 C の間隔は、文字の右側の空白です。 全体の進み幅は、A + B + C の合計を計算することによって決定されます。 文字セルは、フォント内の各文字または記号を囲む虚数四角形です。 文字は文字セルにオーバーハングまたはアンダーハングする可能性があるため、A と C の増分の一方または両方が負の数になる場合があります。