次の方法で共有


GetWindowTextLengthW 関数 (winuser.h)

指定したウィンドウのタイトル バー テキストの長さを文字数で取得します (ウィンドウにタイトル バーがある場合)。 指定したウィンドウがコントロールの場合、関数はコントロール内のテキストの長さを取得します。 ただし、GetWindowTextLength は、別のアプリケーションの編集コントロールのテキストの長さを取得できません。

構文

int GetWindowTextLengthW(
  [in] HWND hWnd
);

パラメーター

[in] hWnd

型: HWND

ウィンドウまたはコントロールへのハンドル。

戻り値

型: int

関数が成功した場合、戻り値はテキストの長さ (文字数) です。 特定の条件下では、この値がテキストの長さを超える可能性があります (「解説」を参照)。

ウィンドウにテキストがない場合、戻り値は 0 になります。

関数の失敗は、戻り値が 0 で、GetLastError 0 以外の結果で示されます。

手記

この関数は、最新のエラー情報をクリアしません。 成功または失敗を特定するには、0 で SetLastError 呼び出して最新のエラー情報をクリアしてから、GetLastError呼び出します。

備考

ターゲット ウィンドウが現在のプロセスによって所有されている場合、GetWindowTextLength により、指定したウィンドウまたはコントロールに WM_GETTEXTLENGTH メッセージが送信されます。

特定の条件下では、GetWindowTextLength 関数は、テキストの実際の長さを超える値を返す場合があります。 これは、ANSI と Unicode の特定の組み合わせで発生します。これは、システムがテキスト内に 2 バイト文字セット (DBCS) 文字が存在する可能性があるためです。 ただし、戻り値は常にテキストの実際の長さと同じ大きさになります。したがって、常にそれを使用してバッファー割り当てをガイドできます。 この動作は、アプリケーションが ANSI 関数と Unicode を使用する共通ダイアログの両方を使用する場合に発生する可能性があります。 また、アプリケーションがウィンドウ プロシージャが Unicode であるウィンドウ GetWindowTextLength の ANSI バージョンを使用している場合や、ウィンドウ プロシージャが ANSI であるウィンドウ GetWindowTextLength の Unicode バージョンを使用する場合にも発生します。 ANSI 関数と ANSI 関数の詳細については、「関数プロトタイプの 規則」を参照してください。

テキストの正確な長さを取得するには、WM_GETTEXTLB_GETTEXT、または CB_GETLBTEXT メッセージ、または GetWindowText 関数を使用します。

手記

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

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winuser.h (Windows.h を含む)
ライブラリ User32.lib
DLL User32.dll
API セットの ext-ms-win-ntuser-window-l1-1-1 (Windows 8.1 で導入)

関連項目

CB_GETLBTEXT

概念

GetWindowText の

LB_GETTEXT

その他のリソース を する

リファレンス

SetWindowText の

WM_GETTEXT

WM_GETTEXTLENGTH

Windows の