Функция 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) |
См. также раздел
Основные понятия
Другие ресурсы
Справочные материалы