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_GETTEXT、 LB_GETTEXT或 CB_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) 中引進 |
另請參閱
概念
其他資源
參考