Класс 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 вместе для реализации настраиваемых подсказок в приложении.
Например, чтобы реализовать всплывающие подсказки в виде выносок, сделайте следующее:
Используйте метод класса CWinAppEx для инициализации диспетчера подсказки в приложении.
Создайте структуру
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); }
Используйте метод CTooltipManager::SetTooltipParams, чтобы задать визуальный стиль для всех подсказок в приложении с помощью стилей, определенных в объекте
CMFCToolTipInfo
:theApp.GetTooltipManager ()->SetTooltipParams (AFX_TOOLTIP_TYPE_ALL, RUNTIME_CLASS (CMFCToolTipCtrl), ¶ms);
Для управления поведением всплывающей подсказки и ее отрисовкой вы также можете получить новый производный класс из класса 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);
Иерархия наследования
Требования
Заголовок: 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