Share via


WM_GETTEXT訊息

將對應至視窗的文字複製到呼叫端提供的緩衝區。

#define WM_GETTEXT                      0x000D

參數

wParam

要複製的最大字元數,包括終止的 Null 字元。

ANSI 應用程式可能會因為從 ANSI 轉換成 Unicode 而使緩衝區中的字串 (大小縮減為 wParam 值) 的最小一半。

lParam

要接收文字之緩衝區的指標。

傳回值

類型: LRESULT

傳回值是複製的字元數,不包括終止的 Null 字元。

備註

DefWindowProc 函式會將與視窗相關聯的文字複製到指定的緩衝區,並傳回復制的字元數。 請注意,對於非文字靜態控制項,這會提供原本建立控制項的文字,也就是識別碼。 不過,它會提供您原本建立的非文字靜態控制項識別碼。 也就是說,如果您後續使用 STM_SETIMAGE 來變更它,則仍會傳回原始識別碼。

對於編輯控制項,要複製的文字是編輯控制項的內容。 對於下拉式方塊,文字是下拉式方塊 (或靜態文字) 部分編輯控制項的內容。 對於按鈕,文字是按鈕名稱。 對於其他視窗,文字是視窗標題。 若要複製清單方塊中專案的文字,應用程式可以使用 LB_GETTEXT 訊息。

WM_GETTEXT 訊息傳送至 具有SS_ICON 樣式的靜態控制項時,會在 lParam所指向緩衝區的前四個位元組中傳回圖示的控制碼。 只有在 已使用WM_SETTEXT 訊息來設定圖示時,才會發生這種情況。

豐富編輯: 如果要複製的文字超過 64K,請使用 EM_STREAMOUTEM_GETSELTEXT 訊息。

WM_GETTEXT 訊息傳送至非文字靜態控制項,例如靜態點陣圖或靜態圖示控制項,不會傳回字串值。 相反地,它會傳回零。 此外,在舊版 Windows 中,應用程式可以將 WM_GETTEXT 訊息傳送至非文字靜態控制項,以擷取控制項的識別碼。 若要擷取控制項的識別碼,應用程式可以使用GetWindowLong傳遞GWL_ID作為索引值,或使用GWLP_IDGetWindowLongPtr

規格需求

需求
最低支援的用戶端
Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限桌面應用程式]
標頭
Winuser.h (包括 Windows.h)

另請參閱

參考

DefWindowProc

GetWindowLong

GetWindowLongPtr

GetWindowText

GetWindowTextLength

WM_GETTEXTLENGTH

WM_SETTEXT

概念

Windows

其他資源

EM_GETSELTEXT

EM_STREAMOUT

LB_GETTEXT