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


Класс CMFCToolTipCtrl

Замечание

Библиотека классов Microsoft Foundation (MFC) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.

Расширенная реализация всплывающей подсказки на основе класса CToolTipCtrl Class. Подсказка на основе класса CMFCToolTipCtrl может отображать значок, метку и описание. Можно настроить его внешний вид с помощью градиентной заливки, пользовательских цветов текста и границы, полужирного шрифта, скругленных углов или стиля всплывающего предупреждения.

Дополнительные сведения см. в исходном коде, расположенном в папке VC\atlmfc\src\mfc установки Visual Studio.

Синтаксис

class CMFCToolTipCtrl : public CToolTipCtrl

Участники

Открытые конструкторы

Имя Описание
CMFCToolTipCtrl::CMFCToolTipCtrl Конструктор по умолчанию.

Открытые методы

Имя Описание
CMFCToolTipCtrl::GetIconSize Возвращает размер значка во всплывающей подсказке.
CMFCToolTipCtrl::GetParams Возвращает параметры отображения всплывающей подсказки.
CMFCToolTipCtrl::OnDrawBorder Рисует границу всплывающей подсказки.
CMFCToolTipCtrl::OnDrawDescription
CMFCToolTipCtrl::OnDrawIcon Отображает значок во всплывающей подсказке.
CMFCToolTipCtrl::OnDrawLabel Рисует заголовок всплывающей подсказки или вычисляет размер метки.
CMFCToolTipCtrl::OnDrawSeparator Рисует разделитель между меткой и описанием во всплывающей подсказке.
CMFCToolTipCtrl::OnFillBackground Заливает фон всплывающей подсказки.
CMFCToolTipCtrl::SetDescription Задает описание, которое отображается во всплывающей подсказке.
CMFCToolTipCtrl::SetFixedWidth
CMFCToolTipCtrl::SetHotRibbonButton
CMFCToolTipCtrl::SetLocation
CMFCToolTipCtrl::SetParams Задает внешний вид всплывающей подсказки с помощью объекта CMFCToolTipInfo.

Замечания

CMFCToolTipCtrlИспользуйте CMFCToolTipInfoобъекты класса CTooltipManager вместе для реализации настраиваемых подсказок в приложении.

Например, чтобы реализовать всплывающие подсказки в виде выносок, сделайте следующее:

  1. Используйте метод класса CWinAppEx для инициализации диспетчера подсказки в приложении.

  2. Создайте структуру CMFCToolTipInfo, чтобы задать необходимый стиль оформления:

    CMFCToolTipInfo params;
    params.m_bBoldLabel = FALSE;
    params.m_bDrawDescription = FALSE;
    params.m_bDrawIcon = FALSE;
    params.m_bRoundedCorners = TRUE;
    params.m_bDrawSeparator = FALSE;
    if (m_bCustomColors)
    {
        params.m_clrFill = RGB (255, 255, 255);
        params.m_clrFillGradient = RGB (228, 228, 240);
        params.m_clrText = RGB (61, 83, 80);
        params.m_clrBorder = RGB (144, 149, 168);
    
    }
    
  3. Используйте метод CTooltipManager::SetTooltipParams, чтобы задать визуальный стиль для всех подсказок в приложении с помощью стилей, определенных в объектеCMFCToolTipInfo:

    theApp.GetTooltipManager ()->SetTooltipParams (AFX_TOOLTIP_TYPE_ALL,
        RUNTIME_CLASS (CMFCToolTipCtrl), &params);
    

Для управления поведением всплывающей подсказки и ее отрисовкой вы также можете получить новый производный класс из класса CMFCToolTipCtrl. Чтобы задать новый класс элемента управления "Всплывающая подсказка", используйте метод CTooltipManager::SetTooltipParams:

myApp.GetTooltipManager ()->SetTooltipParams (AFX_TOOLTIP_TYPE_ALL,
    RUNTIME_CLASS (CMyToolTipCtrl))

Чтобы восстановить класс элемента управления "Всплывающая подсказка" по умолчанию и сбросить оформление подсказки на стандартное, укажите значение NULL в классе среды выполнения и параметрах всплывающей подсказки в методе SetTooltipParams:

theApp.GetTooltipManager ()->SetTooltipParams (AFX_TOOLTIP_TYPE_ALL,
    NULL,
    NULL);

Пример

В следующем примере демонстрируется создание объекта CMFCToolTipCtrl, задание описания, отображаемого во всплывающей подсказке, а также задание ширины элемента управления "Всплывающая подсказка".

CMFCToolTipInfo *params = new CMFCToolTipInfo();

params->m_bBoldLabel = FALSE;
params->m_bDrawDescription = FALSE;
params->m_bDrawIcon = FALSE;
params->m_bRoundedCorners = TRUE;
params->m_bDrawSeparator = FALSE;
params->m_clrFill = RGB(255, 255, 255);
params->m_clrFillGradient = RGB(228, 228, 240);
params->m_clrText = RGB(61, 83, 80);
params->m_clrBorder = RGB(144, 149, 168);

CMFCToolTipCtrl *tipCtrl = new CMFCToolTipCtrl(params);
tipCtrl->SetDescription(_T("tool tip control"));
tipCtrl->SetFixedWidth(100, 150);

Иерархия наследования

CObject

CCmdTarget

CWnd

CToolTipCtrl

CMFCToolTipCtrl

Требования

Заголовок: afxtooltipctrl.h

CMFCToolTipCtrl::CMFCToolTipCtrl

CMFCToolTipCtrl(CMFCToolTipInfo* pParams = NULL);

Параметры

[in] pParams

Замечания

CMFCToolTipCtrl::GetIconSize

Возвращает размер значка во всплывающей подсказке.

virtual CSize GetIconSize();

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

Размер значка в пикселях.

CMFCToolTipCtrl::GetParams

Возвращает параметры отображения всплывающей подсказки.

const CMFCToolTipInfo& GetParams() const;

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

Текущие параметры отображения подсказки, которые хранятся в объекте класса CMFCToolTipInfo.

CMFCToolTipCtrl::OnDrawBorder

Рисует границу всплывающей подсказки.

virtual void OnDrawBorder(
    CDC* pDC,
    CRect rect,
    COLORREF clrLine);

Параметры

pDC
[in] Указатель на контекст устройства.

rect
[in] Ограничивающий прямоугольник подсказки.

clrLine
[in] Цвет границы.

Замечания

Переопределите этот метод в производном классе, чтобы настроить внешний вид границы подсказки.

CMFCToolTipCtrl::OnDrawDescription

virtual CSize OnDrawDescription(
    CDC* pDC,
    CRect rect,
    BOOL bCalcOnly);

Параметры

[in] PDC
[in] Rect
[in] bCalcOnly

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

Замечания

CMFCToolTipCtrl::OnDrawIcon

Отображает значок во всплывающей подсказке.

virtual BOOL OnDrawIcon(
    CDC* pDC,
    CRect rectImage);

Параметры

pDC
[in] Указатель на контекст устройства.

rectImage
[in] Координаты значка.

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

Значение TRUE, если нарисован значок. В противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

Переопределите этот метод в производном классе, чтобы отобразить пользовательский значок. Для правильного вычисления макета текста и описания необходимо также переопределить CMFCToolTipCtrl::GetIconSize .

CMFCToolTipCtrl::OnDrawLabel

Рисует заголовок всплывающей подсказки или вычисляет размер метки.

virtual CSize OnDrawLabel(
    CDC* pDC,
    CRect rect,
    BOOL bCalcOnly);

Параметры

pDC
[in] Указатель на контекст устройства.

rect
[in] Ограничивающий прямоугольник области метки.

bCalcOnly
[in] Если значение TRUE, метка не будет вырисована.

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

Размер метки в пикселях.

Замечания

Переопределите этот метод в производном классе, если вы хотите настроить внешний вид метки подсказки.

CMFCToolTipCtrl::OnDrawSeparator

Рисует разделитель между меткой и описанием во всплывающей подсказке.

virtual void OnDrawSeparator(
    CDC* pDC,
    int x1,
    int x2,
    int y);

Параметры

pDC
[in] Указатель на контекст устройства.

x1
[in] Горизонтальная координата левого конца разделителя.

x2
[in] Горизонтальная координата правого конца разделителя.

Y
[in] Вертикальная координата разделителя.

Замечания

Реализация по умолчанию рисует линию от точки (x1, y) к точке (x2, y).

Переопределите этот метод в производном классе, чтобы настроить внешний вид разделителя.

CMFCToolTipCtrl::OnFillBackground

Заливает фон всплывающей подсказки.

virtual void OnFillBackground(
    CDC* pDC,
    CRect rect,
    COLORREF& clrText,
    COLORREF& clrLine);

Параметры

pDC
[in] Указатель на контекст устройства.

rect
[in] Указывает ограничивающий прямоугольник области для заполнения.

clrText
[in] Цвет переднего плана подсказки.

clrLine
[in] Цвет границ и линии разделителя между меткой и описанием.

Замечания

Реализация по умолчанию заполняет прямоугольник, заданный прямоугольником с цветом или шаблоном, заданным последним вызовом CMFCToolTipCtrl::SetParams.

Переопределите этот метод в производном классе, если вы хотите настроить внешний вид подсказки.

CMFCToolTipCtrl::SetDescription

Задает описание, которое отображается во всплывающей подсказке.

virtual void SetDescription(const CString strDesrciption);

Параметры

strDesrciption
[in] Текст описания.

Замечания

Текст описания отображается в подсказке под разделителем.

CMFCToolTipCtrl::SetFixedWidth

void SetFixedWidth(
    int nWidthRegular,
    int nWidthLargeImage);

Параметры

[in] nWidthRegular
[in] nWidthLargeImage

Замечания

CMFCToolTipCtrl::SetHotRibbonButton

void SetHotRibbonButton(CMFCRibbonButton* pRibbonButton);

Параметры

[in] pRibbonButton

Замечания

CMFCToolTipCtrl::SetLocation

void SetLocation(CPoint pt);

Параметры

[in] точка

Замечания

CMFCToolTipCtrl::SetParams

Указывает внешний вид подсказки с помощью объекта класса CMFCToolTipInfo.

void SetParams(CMFCToolTipInfo* pParams);

Параметры

pParams
[in] Указатель на объект класса CMFCToolTipInfo, содержащий параметры отображения.

Замечания

При отображении подсказки она рисуется с помощью цветов и визуальных стилей, которые указывают pParams . Значение pParams хранится в защищенном элементе m_Params, к которому можно получить доступ с помощью производного класса, переопределяющего CMFCToolTipCtrl::OnDrawBorder, CMFCToolTipCtrl::OnDrawIcon, CMFCToolTipCtrl::OnDrawLabel, CMFCToolTipCtrl::OnDrawSeparator или CMFCToolTipCtrl::OnFillBackground для поддержания указанного внешнего вида.

См. также

Диаграмма иерархии
Классы
Класс CToolTipCtrl
Класс CTooltipManager
Класс CMFCToolTipInfo
Класс CWinAppEx