Отображение подсказок для кнопок

При указании стиля ТБ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;

Использование элементов управления панели инструментов

Демонстрация общих элементов управления Windows (CppWindowsCommonControls)