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


Класс CMFCToolTipCtrl

Расширенная реализация всплывающей подсказки на основе класса 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.

Замечания

CMFCToolTipInfoИспользуйте CMFCToolTipCtrlобъекты класса 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 Class
Класс CTooltipManager
Класс CMFCToolTipInfo
Класс CWinAppEx