GetTabbedTextExtentA 関数 (winuser.h)
GetTabbedTextExtent 関数は、文字列の幅と高さを計算します。 文字列に 1 つ以上のタブ文字が含まれている場合、文字列の幅は、指定したタブ位置に基づいています。 GetTabbedTextExtent 関数は、現在選択されているフォントを使用して文字列の次元を計算します。
構文
DWORD GetTabbedTextExtentA(
[in] HDC hdc,
[in] LPCSTR lpString,
[in] int chCount,
[in] int nTabPositions,
[in] const INT *lpnTabStopPositions
);
パラメーター
[in] hdc
デバイス コンテキストへのハンドル。
[in] lpString
文字列へのポインター。
[in] chCount
テキスト文字列の長さ。 ANSI 関数の場合は BYTE カウントであり、Unicode 関数の場合は WORD カウントです。 ANSI 関数の場合、SBCS コード ページの文字はそれぞれ 1 バイトですが、DBCS コード ページのほとんどの文字は 2 バイトを取ります。Unicode 関数の場合、現在定義されているほとんどの Unicode 文字 (Basic 多言語プレーン (BMP) の文字) は 1 WORD で、Unicode サロゲートは 2 つの WORD です。
[in] nTabPositions
lpnTabStopPositions パラメーターが指す配列内のタブ位置の数。
[in] lpnTabStopPositions
タブストップ位置を含む配列へのポインター (デバイス単位)。 タブ位置は、昇順で並べ替える必要があります。最小の x 値は、配列の最初の項目である必要があります。
戻り値
関数が成功した場合、戻り値は論理単位での文字列の次元です。 高さは高い単語で、幅は下位ワードにあります。
関数が失敗した場合、戻り値は 0 になります。
備考
現在のクリッピング領域は、GetTabbedTextExtent 関数によって返される幅と高さに影響しません。
一部のデバイスでは、通常のセル配列に文字が配置されないため (つまり、文字をカーニングします)、文字列内の文字のエクステントの合計が文字列の範囲と等しくない可能性があります。
手記
winuser.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetTabbedTextExtent を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | winuser.h (Windows.h を含む) |
ライブラリ | User32.lib |
DLL | User32.dll |
関連項目
GetTextExtentPoint32 の
TabbedTextOut を