Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Многострочные подсказки позволяют отображать текст на нескольких строках.
Они поддерживаются версии 4.70 и более поздних версий общих элементов управления. Приложение создает многострочную подсказку, отправляя сообщение TTM_SETMAXTIPWIDTH и указывая ширину прямоугольника отображения. Текст, превышающий эту ширину, помещает в следующую строку, а не расширяет область отображения. Высота прямоугольника увеличивается по мере необходимости для размещения дополнительных линий. Элемент управления подсказки автоматически упаковывает строки или можно использовать сочетание возвращаемого или строкового канала каретки, \r\nдля принудительного разрыва строк в определенных местах.
Результирующий дисплей показан на следующем рисунке.
Заметка
Текстовый буфер, указанный szText элементом NMTTDISPINFO, может содержать только 80 символов. Если требуется использовать длинную строку, наведите указатель lpszText члена NMTTDISPINFO в буфер, содержащий нужный текст.
Что нужно знать
Технологии
Необходимые условия
- C/C++
- Программирование пользовательского интерфейса Windows
Инструкции
Реализовать многострочные подсказки
Следующий фрагмент кода является примером простого обработчика уведомлений TTN_GETDISPINFO. Он включает многострочную подсказку, задавая прямоугольник экрана равным 150 пикселя. Вставляется ручной разрыв строки после первого слова, чтобы показать, что разрывы строки могут быть жесткими, например, и мягкими.
case WM_NOTIFY:
{
switch (((LPNMHDR)lParam)->code)
{
case TTN_GETDISPINFO:
LPNMTTDISPINFO pInfo = (LPNMTTDISPINFO)lParam;
SendMessage(pInfo->hdr.hwndFrom, TTM_SETMAXTIPWIDTH, 0, 150);
wcscpy_s(pInfo->szText, ARRAYSIZE(pInfo->szText),
L"This\nis a very long text string " \
L"that must be broken into several lines.");
break;
}
break;
}
Связанные разделы