Share via


GetWindowTextLengthA 函式 (winuser.h)

如果視窗有標題列) ,則擷取指定視窗標題欄文字的長度,以字元為單位 (。 如果指定的視窗是控件,函式會擷取控件內的文字長度。 不過, GetWindowTextLength 無法擷取另一個應用程式中編輯控件的文字長度。

語法

int GetWindowTextLengthA(
  [in] HWND hWnd
);

參數

[in] hWnd

類型: HWND

視窗或控件的句柄。

傳回值

類型: int

如果函式成功,則傳回值會是文字的長度,以字元為單位。 在某些情況下,此值可能會大於文字長度 (請參閱) 。

如果窗口沒有文字,則傳回值為零。

函式失敗會以零的傳回值和非零的 GetLastError 結果表示。

注意

此函式不會清除最新的錯誤資訊。 若要判斷成功或失敗,請使用 0 呼叫 SetLastError 來清除最新的錯誤資訊,然後呼叫 GetLastError

備註

如果目標視窗是由目前進程所擁有, GetWindowTextLength 會導致 WM_GETTEXTLENGTH 訊息傳送至指定的視窗或控件。

在某些情況下, GetWindowTextLength 函式可能會傳回大於文字實際長度的值。 這會與 ANSI 和 Unicode 的特定混合發生,這是因為系統允許在文字內 (DBCS) 字元中,可能存在雙位元組位元集。 不過,傳回值一律會至少與文字的實際長度相同;因此,您一律可以使用它來引導緩衝區配置。 當應用程式同時使用 ANSI 函式和使用 Unicode 的一般對話時,就會發生這種行為。 當應用程式使用 GetWindowTextLength 的 ANSI 版本與視窗程式為 Unicode 的視窗,或是具有視窗程式為 ANSI 的視窗的 Unicode 版本 GetWindowTextLength 時,也可能會發生此情況。 如需 ANSI 和 ANSI 函式的詳細資訊,請參閱 函式原型的慣例

若要取得文字的確切長度,請使用 WM_GETTEXTLB_GETTEXTCB_GETLBTEXT 訊息或 GetWindowText 函式。

注意

winuser.h 標頭會將 GetWindowTextLength 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 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