Функция GetWindowTextLengthA (winuser.h)

Извлекает длину (в символах) текста заголовка указанного окна (если окно имеет строку заголовка). Если указанное окно является элементом управления, функция извлекает длину текста в элементе управления . Однако GetWindowTextLength не может получить длину текста элемента управления редактированием в другом приложении.

Синтаксис

int GetWindowTextLengthA(
  [in] HWND hWnd
);

Параметры

[in] hWnd

Тип: HWND

Дескриптор окна или элемента управления.

Возвращаемое значение

Тип: int

Если функция выполняется успешно, возвращаемым значением будет длина текста в символах. При определенных условиях это значение может быть больше длины текста (см. примечания).

Если в окне нет текста, возвращаемое значение равно нулю.

Сбой функции обозначается возвращаемым значением, равным нулю, и результатом GetLastError , не равным нулю.

Примечание

Эта функция не очищает самые последние сведения об ошибке. Чтобы определить успешность или неудачу, очистите самые последние сведения об ошибке, вызвав Метод SetLastError с 0, а затем вызовите Метод GetLastError.

Комментарии

Если целевое окно принадлежит текущему процессу, GetWindowTextLength вызывает отправку сообщения WM_GETTEXTLENGTH в указанное окно или элемент управления.

При определенных условиях функция GetWindowTextLength может возвращать значение, превышающее фактическую длину текста. Это происходит с определенными сочетаниями ANSI и Юникода и связано с тем, что система допускает возможное существование двухбайтовых символов (DBCS) в тексте. Однако возвращаемое значение всегда будет по меньшей мере равно фактической длине текста; Таким образом, вы всегда можете использовать его для распределения буфера. Это может произойти, когда приложение использует как функции ANSI, так и общие диалоги, использующие Юникод. Это также может произойти, если приложение использует версию ANSI GetWindowTextLength с окном, процедура окна которого имеет значение Юникод, или версия в Юникоде GetWindowTextLength с окном, для которого используется процедура ansi. Дополнительные сведения о функциях ANSI и ANSI см. в разделе Соглашения о прототипах функций.

Чтобы получить точную длину текста, используйте сообщения WM_GETTEXT, LB_GETTEXT или CB_GETLBTEXT либо функцию GetWindowText .

Примечание

Заголовок winuser.h определяет GetWindowTextLength как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header 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