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 对象指定工具提示的视觉外观。 |
注解
结合使用 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 时指定的颜色或图案填充 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::OnDrawBorder、CMFCToolTipCtrl::OnDrawIconCMFCToolTipCtrl::OnDrawLabel、CMFCToolTipCtrl::OnDrawSeparator 或 CMFCToolTipCtrl::OnFillBackground 以保持指定的外观。
另请参阅
层次结构图
类
CToolTipCtrl Class
CTooltipManager 类
CMFCToolTipInfo 类
CWinAppEx 类