Отображение подсказок для кнопок
При указании стиля ТБSTYLE_TOOLTIPS панель инструментов создает и управляет подсказкой. Элемент управления подсказки скрыт и отображается только при перемещении указателя на кнопку панели инструментов и оставить его около одной секунды.
Приложение может предоставить текст элементу управления подсказки одним из следующих способов:
- Задайте текст подсказки в качестве элемента iString структуры ТБ BUTTON для каждой кнопки. Кроме того, необходимо отправить сообщение ТБ_SETMAXTEXTROWS и задать максимальный размер текстовых строк 0, чтобы текст не отображалась как метка кнопки, а не в виде подсказки.
- Создайте панель инструментов с ТБSTYLE_LIST стилем, а затем задайте ТБSTYLE_EX_MIXEDBUTTONS расширенный стиль. Метки отображаются только для кнопок с BTNS_SHOWTEXT стилем. Для кнопок, которые не имеют этого стиля, отображается подсказка, содержащая текст кнопки.
- Ответьте на код уведомления TTN_GETDISPINFO .
- Ответьте на код уведомления ТБN_GETINFOTIP.
Приложение, которое должно отправлять сообщения непосредственно в элемент управления подсказки, может получить дескриптор элемента управления с помощью сообщения ТБ_GETTOOLTIPS. Приложение может заменить элемент управления подсказкой панели инструментов другим элементом управления подсказки с помощью сообщения ТБ_SETTOOLTIPS.
Самый гибкий способ предоставления текста подсказки — ответить на TTN_GETDISPINFO или ТБN_GETINFOTIP код уведомлений, отправленный элементом управления панели инструментов в виде сообщения WM_NOTIFY. Для TTN_GETDISPINFO параметр lParam содержит указатель на структуру NMTTDISPINFO (также определяемую как LPTOOLTIPTEXT), которая указывает идентификатор команды кнопки, для которой необходим текст справки. Этот идентификатор находится в элементе NMTTDISPINFO.hdr.idFrom . Приложение может скопировать текст справки в структуру, указать адрес строки, содержащей текст справки, или указать дескриптор экземпляра и идентификатор ресурса строки.
Это важно знать
Технологии
Необходимые компоненты
- C/C++
- Программирование пользовательского интерфейса Windows
Instructions
Отображение подсказки для кнопки
В следующем примере кода обрабатывается код уведомления TTN_GETDISPINFO подсказки, предоставляя текст из идентификаторов ресурсов.
case WM_NOTIFY:
switch (((LPNMHDR) lParam)->code)
{
case TTN_GETDISPINFO:
{
LPTOOLTIPTEXT lpttt = (LPTOOLTIPTEXT)lParam;
// Set the instance of the module that contains the resource.
lpttt->hinst = g_hInst;
UINT_PTR idButton = lpttt->hdr.idFrom;
switch (idButton)
{
case IDM_NEW:
lpttt->lpszText = MAKEINTRESOURCE(IDS_TIPS_NEW);
break;
case IDM_OPEN:
lpttt->lpszText = MAKEINTRESOURCE(IDS_TIPS_OPEN);
break;
case IDM_SAVE:
lpttt->lpszText = MAKEINTRESOURCE(IDS_TIPS_SAVE);
break;
}
break;
}
}
return TRUE;
См. также