Сообщение WM_GETTEXTLENGTH

Прикладная программа отправляет сообщение WM_GETTEXTLENGTH, чтобы определить длину текста, в символах, связанного с окном.

Синтаксис

Чтобы отправить это сообщение, вызовите функцию SendMessage как ниже указано.

lResult = SendMessage(         // возвращает LRESULT в lResult

(HWND) hWndControl,        // дескриптор целевого органа управления

(UINT) WM_GETTEXTLENGTH,   // ID сообщения

(WPARAM) wParam,           // = 0; не используется, должно быть - нуль

(LPARAM) lParam            // = 0; не используется, должно быть - нуль

); 

Параметры

wParam

Этот параметр не используется и должен быть нуль.

lParam

Этот параметр не используется и должен быть нуль.

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

Величина возвращаемого значения - длина текста в TCHAR, не, включая символ завершения строки (нуль-терминатор).

Замечания

Для элемента редактирования, текст, который будет скопирован - содержание поля редактирования. Для комбинированного блока, текст - содержание поля редактирования (или статический текст) как части комбинированного блока. Для кнопки, текст - имя кнопки. Для других окон, текст - заголовок окна. Чтобы определять длину элемента в окне списка, прикладная программа может использовать сообщение LB_GETTEXTLEN.

Когда отправляется сообщение WM_GETTEXTLENGTH, функция DefWindowProc возвращает значение длины текста, в символах. При известных условиях функция DefWindowProc возвращает значение, которое является больше, чем фактическая длина текста. Это происходит с некоторыми смесями ANSI и Уникода, и из-за операционной системы, которая дает возможность существования символов из набора двухбайтовых символов (DBCS) внутри текста. Возвращаемое значение, однако, будет всегда, по крайней мере, такого размера, как фактическая длина текста; Вы можете, таким образом, всегда использовать его, чтобы управлять распределением в буфере. Это поведение может случаться тогда, когда прикладная программа использует и функции ANSI и стандартные диалоговые окна, которые используют Уникод.

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

Windows 2000/XP: отправка сообщения WM_GETTEXTLENGTH нетекстовому статическому элементу управления, типа статического точечного рисунка или статической пиктограммы, не возвращает строкового значения. Вместо этого возвращается нуль.

Смотри также

Краткий обзор Окна, CB_GETLBTEXT, DefWindowProc, GetWindowText, GetWindowTextLength, LB_GETTEXT, LB_GETTEXTLEN, WM_GETTEXT

Размещение и совместимость WM_GETTEXTLENGTH

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да

Windows Me

Да

Windows 98

Да

Windows 95

Да

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode Нет
Замечания по платформе Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz