共用方式為


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 的一般對話框時,就會發生此行為。 當應用程式使用 ANSI 版本的 GetWindowTextLe ngth 視窗程式為 Unicode 的視窗,或具有視窗程式為 ANSI 的視窗時,也可能會發生此情況。 如需 ANSI 和 ANSI 函式的詳細資訊,請參閱函式原型的 慣例

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

注意

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

要求

要求 價值
最低支援的用戶端 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