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


TTM_ADJUSTRECT сообщение

Вычисляет прямоугольник текстового отображения элемента управления подсказкой из прямоугольника окна или прямоугольника окна подсказки, необходимого для отображения заданного текстового прямоугольника.

Параметры

wParam

Значение, указывающее, какую операцию следует выполнить. Если задано значение TRUE, lParam используется для указания прямоугольника для отображения текста и получает соответствующий прямоугольник окна. Если значение FALSE, для указания прямоугольника окна используется lParam , и он получает соответствующий прямоугольник отображения текста.

lParam

Структура RECT для хранения прямоугольника окна подсказки или прямоугольника отображения текста.

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

Возвращает ненулевое значение, если прямоугольник успешно скорректирован, и возвращает ноль при возникновении ошибки.

Комментарии

Это сообщение особенно полезно, если требуется использовать элемент управления подсказкой для отображения полного текста строки, которая обычно усечена. Обычно используется с элементами управления listview и treeview. Обычно это сообщение отправляется в ответ на код уведомления TTN_SHOW , чтобы можно было правильно разместить элемент управления подсказками.

Прямоугольник окна подсказки несколько больше прямоугольника отображения текста, ограничивающего строку подсказки. Источник окна также смещается вверх и влево от источника прямоугольника отображения текста. Чтобы разместить прямоугольник отображения текста, необходимо вычислить соответствующий прямоугольник окна и использовать этот прямоугольник для размещения подсказки. TTM_ADJUSTRECT обрабатывает это вычисление.

Если для параметра wParam задано значение TRUE, TTM_ADJUSTRECT принимает размер и положение нужного прямоугольника отображения текста подсказки, а также возвращает размер и положение окна подсказки, необходимые для отображения текста в указанной позиции. Если для параметра wParamзадано значение FALSE, можно указать прямоугольник окна подсказки и TTM_ADJUSTRECT вернет размер и положение текстового прямоугольника.

В следующем фрагменте кода показано использование сообщения TTM_ADJUSTRECT для размещения подсказки для отображения полного текста строки элемента управления вместо усеченной строки. Определяемая приложением функция GetMyItemRect возвращает текстовый прямоугольник, который потребуется для отображения текста подсказки непосредственно над усеченной строкой. Сведения о реализации этой функции зависят от конкретного элемента управления. TTM_ADJUSTRECT используется для отправки этого текстового прямоугольника в элемент управления подсказкой. Он возвращает прямоугольник окна соответствующего размера и расположения, который затем используется для размещения окна подсказки.

case TTN_SHOW:

if (MyStringIsTruncated) {
    RECT rc;
    
    GetMyItemRect(&rc);
    SendMessage(hwndToolTip, TTM_ADJUSTRECT, TRUE, (LPARAM)&rc);
    SetWindowPos(hwndToolTip,
                 NULL,
                 rc.left, rc.top,
                 0, 0,
                 SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE);
} 

Требования

Требование Значение
Минимальная версия клиента
Windows Vista [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Заголовок
Commctrl.h