Функция 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 см. в соглашениях о прототипах функций.
Чтобы получить точную длину текста, используйте функцию
Заметка
Заголовок winuser.h определяет GetWindowTextLength как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winuser.h (включая Windows.h) |
библиотеки |
User32.lib |
DLL | User32.dll |
набор API | ext-ms-win-ntuser-window-l1-1-1 (представлено в Windows 8.1) |
См. также
концептуальные
другие ресурсы
Справочник