CMFCToolTipCtrl 类

基于 CToolTipCtrl Class的扩展工具提示实现。 基于 CMFCToolTipCtrl 类的工具提示可显示图标、标签和说明。 可以使用渐变填充、自定义文本和边框颜色、粗体文本、圆角或气球样式来自定义可视外观。

有关详细信息,请参阅所安装的 Visual Studio 的 C\atlmfc\src\mfc 文件夹中的源代码。

语法

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 对象指定工具提示的视觉外观。

注解

结合使用 CMFCToolTipCtrlCMFCToolTipInfoCTooltipManager 类对象以在应用程序中实现自定义的工具提示。

例如,若要使用气球样式的工具提示,请按照下列步骤执行:

  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 时指定的颜色或图案填充 rect 指定的矩形

根据需要在派生类中替代此方法以自定义工具提示的外观。

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] pt

注解

CMFCToolTipCtrl::SetParams

通过使用 CMFCToolTipInfo Class 对象指定工具提示的视觉外观。

void SetParams(CMFCToolTipInfo* pParams);

参数

pParams
[in] 指向包含显示参数的 CMFCToolTipInfo 类对象的指针。

注解

每当显示工具提示时,都会使用 pParams 指定的颜色和视觉样式绘制该工具提示。 pParams 的值存储在受保护的成员 m_Params 中,可通过派生类进行访问,该类替代 CMFCToolTipCtrl::OnDrawBorderCMFCToolTipCtrl::OnDrawIconCMFCToolTipCtrl::OnDrawLabelCMFCToolTipCtrl::OnDrawSeparatorCMFCToolTipCtrl::OnFillBackground 以保持指定的外观

另请参阅

层次结构图

CToolTipCtrl Class
CTooltipManager 类
CMFCToolTipInfo 类
CWinAppEx 类