Поделиться через


Функция 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 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер 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