Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Библиотека классов 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 вместе для реализации настраиваемых подсказок в приложении.
Например, чтобы реализовать всплывающие подсказки в виде выносок, сделайте следующее:
Используйте метод класса 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
Класс CTooltipManager
Класс CMFCToolTipInfo
Класс CWinAppEx