WM_GETTEXT

WM_GETTEXTメッセージは、ウィンドウに関連付けられたテキスト(ウィンドウタイトルやコントロールの内容など)を指定されたバッファにコピーするために送信されます。

このメッセージを送信するにはSendMessage関数を使います。

#define  WM_GETTEXT    0x000D

パラメータ

wParam

テキストを格納するバッファのサイズを指定します。このサイズには終端ヌル文字も含まれます。

Windows NT/2000/XP: ANSI版アプリケーションでは、ANSIからUnicodeへの変換のために、wParamパラメータの値の半分まで文字列のサイズが減らされる可能性があります。

pszText

テキストを格納するバッファのアドレスを指定します。

戻り値

コピーされたテキストのサイズが返ります。このサイズには終端ヌル文字は含まれません。

解説

DefWindowProc関数は、ウィンドウに関連付けられたテキストを指定されたバッファにコピーし、コピーされたテキストサイズを返します。

このメッセージがエディットコントロールに送られると、コントロールの内容のテキストがコピーされます。コンボボックスに送られると、コンボボックスのエディットコントロール(またはスタティックテキスト)の部分のテキストがコピーされます。ボタンコントロールに送られると、ボタン上のテキストがコピーされます。その他のウィンドウに送られると、ウィンドウタイトルのテキストがコピーされます。リストボックスの項目のテキストを取得するには、LB_GETTEXTメッセージを送信します。

このメッセージがSS_ICONスタイルを持つスタティックコントロールに送られた場合は、バッファの先頭の4バイトにはアイコンのハンドルが格納されます。これは、アイコンを設定するのにWM_SETTEXTメッセージが使用された場合にのみ取得されます。

Rich Edit: リッチエディットコントロールで64Kバイト以上のテキストをコピーする場合には、EM_STREAMOUTメッセージまたはEM_GETSELTEXTメッセージを使用します。

Windows 2000/XP: スタティックビットマップやスタティックアイコンコントロールなどの非テキストスタティックコントロールにWM_GETTEXTメッセージを送信しても、文字列値は返されずに、ゼロが返されます。それ以前のバージョンのWindowsでは、非テキストスタティックコントロールにWM_GETTEXTメッセージを送信してコントロールIDを取得することができます。Windows 2000/XPでコントロールIDを取得するには、GetWindowLong関数にGWL_IDを渡すか、GetWindowLongPtr関数にGWLP_IDを渡します。

対応情報

Windows 95 以降 / Windows NT 3.1 以降