CPPToolTip v2.1






4.96/5 (343投票s)
一个允许您将控件的数据显示为工具提示的类。
![]() |
|
将锚点放置在任何边缘 |
菜单项的工具提示 |
工具栏项的工具提示 |
地图项的工具提示 |
不同控件的标题提示 |
带有超链接和热区的工具提示 |
目录
功能
- 标准和气球工具提示
- 内置的HTML-lite语言用于工具提示
- 内置支持CSS样式
- 内置支持菜单和工具栏
- 支持任何大小的图标(最多256色)
- 支持位图
- 支持ImageList
- 从资源、DLL或文件中加载图标、位图和字符串
- 支持淡入淡出效果
- 支持工具提示和图像的渐变阴影
- 支持对任何图像应用各种效果(变亮、变暗、灰度)
- 支持超链接
- 支持热区
- 支持表格
- 支持
CScrollView
- 扩展的 <br> 和 <t> 标签
- 菜单和工具栏项的扩展资源字符串
- 所有尺寸均可自定义
- 运行时更改工具提示文本
- 实现了调试模式(灵感来自 www.tooltips.net 网站,经 Vitaly Tomilov 许可)
- 支持动画 - v2.1 新增
- 支持文本换行 - v2.1 新增
- 包含完整的源代码!
如何将CPPToolTip集成到您的应用程序中
要将PPToolTip控件集成到您的应用程序中,您应该将以下文件添加到您的项目中
文件 |
描述 |
PPTooltip.h PPTooltip.cpp |
CPPTooltip 类 |
PPHtmlDrawer.h PPHtmlDrawer.cpp |
CPPHtmlDrawer 类。用于在工具提示主体中绘制HTML字符串 |
PPDrawManager.h |
CPPDrawManager 类是一组用于处理图形的方法。 |
CeXDib.h CeXDib.cpp |
CCeXDib 类,感谢 Davide Pizzolato 和 Davide Calabro。此类的使用是为了扩展背景效果。 |
如果定义了 USE_SHADE
,则可以使用 Davide Pizzolato 和 Davide Calabro 扩展的背景效果。
in PPDrawManager.h #define USE_SHADE
创建CPPToolTip对象
在您想使用CPPToolTip窗口的头文件中包含PPTooltip.h,并为窗口创建一个成员变量
CPPToolTip m_tooltip;
现在创建窗口。对于基于对话框的应用程序,在您的OnInitDialog中
// Call the base-class method CDialog::OnInitDialog(); // Create the CPPToolTip object m_tooltip.Create(this);
现在调用 AddTool
函数来注册一个工具及其工具提示信息,以便当鼠标指针停留在该工具上时显示工具提示信息。
m_tooltip.AddTool(GetDlgItem(IDC_BUTTON1), _T(
"Tooltip to the control IDC_BUTTON1"));
或者用于矩形区域
m_tooltip.AddTool(this, _T("Tooltip for rectangle area"), CRect (100, 100, 200, 200));
现在您必须添加 RelayEvent
函数调用,将鼠标消息传递给工具提示控件进行处理。
BOOL ... ::PreTranslateMessage(MSG* pMsg) { m_tooltip.RelayEvent(pMsg); }
将工具提示与工具栏一起使用
1. 在 CMainFrame
的头文件中创建 CPPToolTip
对象
CPPToolTip m_tooltip;
2. 在 CMainFrame::OnCreate()
中调用 AddToolBar
方法。
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { ... m_tooltip.Create(this); //Adds tooltip for toolbar m_tooltip.AddToolBar(&m_wndToolBar); return 0; }3. 添加
RelayEvent
函数调用,将鼠标消息传递给工具提示控件进行处理。BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) { m_tooltip.RelayEvent(pMsg); }
来自资源的扩展字符串
请注意,工具提示的文本会自动从资源加载。
字符串格式已扩展为第三个参数,用于菜单和工具栏的禁用项。
资源中的格式字符串:Parameter1\nParameter2\nParameter3
其中
- Parameter1 - 正常菜单项和状态栏的文本
- Parameter2 - 正常工具栏项的文本
- Parameter3 - 禁用菜单和工具栏项的文本
将工具提示与菜单一起使用
1. 在 CMainFrame
的头文件中创建 CPPToolTip
对象
CPPToolTip m_tooltip;
2. 在 CMainFrame::OnCreate()
中调用 Create
方法。
m_tooltip.Create(this);
3. 取消注释一行以启用与菜单的交互。
in PPTooltip.h #define PPTOOLTIP_USE_MENU
4. 为 CMainFrame
添加两个处理程序。
void CMainFrame::OnMenuSelect(UINT nItemID, UINT nFlags, HMENU hSubMenu) { m_tooltip.OnMenuSelect(nItemID, nFlags, hSubMenu); CFrameWnd::OnMenuSelect(nItemID, nFlags, hSubMenu); }5. 添加
void CMainFrame::OnEnterIdle(UINT nWhy, CWnd* pWho) { m_tooltip.OnEnterIdle(nWhy, pWho); }
RelayEvent
函数调用,将鼠标消息传递给工具提示控件进行处理。BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) { m_tooltip.RelayEvent(pMsg); }
类成员
然后,当你开始迭代 2(这是构建迭代的开始)时,你可能想要复制测试用例并将它们重新分类到迭代 2。这还允许对测试用例进行粒度跟踪,并允许你说某个测试用例在一个迭代中是准备好的,但在另一个迭代中不是。同样,如何做到这一点取决于你以及你希望如何报告。 “场景”部分提供了更多细节。 |
|
CPPToolTip | 构造一个 CPPToolTip 对象。 |
Create | 创建工具提示控件并将其附加到 CPPToolTip 对象。 |
行为 |
|
SetBehaviour | 设置工具提示的行为 |
GetBehaviour | 获取工具提示的行为 |
背景 |
|
SetColorBk | 指定用于控件的背景颜色。 |
SetEffectBk | 将控件颜色设置为默认颜色。 |
工具 |
|
AddTool | 添加工具的信息。 |
AddToolBar | 将工具栏添加到工具提示控件。 |
RemoveTool | 移除指定的工具。 |
RemoveAllTools | 移除所有工具。 |
ShowHelpTooltip | 将工具提示显示为帮助窗口 |
HideTooltip | 隐藏工具提示 |
CImageList |
|
SetImageList | 设置图像列表到工具提示。 |
Border |
|
SetBorder | 设置工具提示边框的颜色和宽度。 |
HideBorder | 隐藏工具提示的边框。 |
通知 |
|
SetNotify | 启用关于更改数据或视图的通知。 |
GetNotify | 是否启用关于更改数据或视图的通知。 |
CSS 样式 |
|
SetCssStyles | 设置HTML文本的CSS样式 |
GetCssStyles | 检索关于HTML文本CSS样式的相关信息 |
延迟 |
|
SetDelayTime | 设置工具提示控件的延迟时间。 |
GetDelayTime | 检索当前为CPPToolTip控件设置的初始、弹出和重显持续时间 |
尺寸 |
|
SetDefaultSizes | 将所有尺寸设置为默认值。 |
SetSize | 设置工具提示的尺寸。 |
GetSize | 检索指定值的尺寸。 |
方向 |
|
SetDirection | 设置工具提示锚点的位置。 |
GetDirection | 检索工具提示锚点的位置。 |
其他 |
|
SetDebugMode | 设置工具提示的调试模式。 |
EnableEscapeSequences | 在HTML字符串中启用或禁用转义序列。 |
SetTransparency | 设置工具提示的透明度。 |
GetTransparency | 获取工具提示的透明度。 |
SetTooltipShadow | 设置工具提示的阴影。 |
SetImageShadow | 设置图像的阴影。 |
SetMaxTipWidth | 设置工具提示窗口的最大宽度。 |
SetImageShadow | 设置图像的阴影。 |
超链接 |
|
EnableHyperlink | 将资源名称与其ID关联。 |
SetCallbackHyperlink | 按指定名称或资源ID搜索数组索引。 |
菜单 (仅在定义了 PPTOOLTIP_USE_MENU 时可用) |
|
MenuToolPosition | 设置工具提示锚点相对于菜单项的位置。 |
GetMenuToolPosition | 获取工具提示锚点相对于菜单项的位置。 |
操作 |
|
RelayEvent | 将鼠标消息传递给工具提示控件进行处理。 |
版本 |
|
GetVersionI | 获取 CPPToolTip 版本 |
GetVersionC | 获取 CPPToolTip 版本 |
CPPToolTip::CPPToolTip
CPPToolTip ();
备注
构造一个 CPPToolTip 对象。之后您必须调用 Create。
CPPToolTip::Create
BOOL Create (CWnd* pParentWnd, BOOL bBalloonSize = TRUE);
参数
pParentWnd
- 指向工具提示控件的父窗口,通常是 CDialog。它不能为空。bBalloonSize
- 如果为 TRUE,则 CPPToolTip 对象将设置为气球尺寸,否则设置为标准尺寸。
返回值
如果 CPPToolTip 对象成功创建,则返回非零值;否则返回 0。
备注
您通过两个步骤来构造 CPPToolTip。首先调用构造函数来构造 CPPToolTip 对象;然后调用 Create 来创建工具提示控件并将其附加到 CPPToolTip 对象。
CPPToolTip::SetBehaviour
void SetBehaviour(DWORD dwBehaviour = 0)
参数
dwBehaviour
- 工具提示的行为。此参数可以为以下值之一- PPTOOLTIP_MULTIPLE_SHOW - 此选项为指定的工具或工具提示对象的所有工具设置多次显示工具提示。使用此选项,工具提示将在鼠标指针每次停止时显示。
- PPTOOLTIP_CLOSE_LEAVEWND - 如果设置此标志,则当鼠标指针离开控件时,工具提示将隐藏。
- PPTOOLTIP_NOCLOSE_OVER - 如果设置此标志,则当鼠标指针停留在工具提示上时,工具提示不会隐藏
- PPTOOLTIP_DISABLE_AUTOPOP - 具有此标志的工具提示不会从自动弹出计时器隐藏。此标志会自动添加到帮助工具提示(请参阅 ShowHelpTooltip)。
备注
调用函数来设置工具提示的行为。
CPPToolTip::GetBehaviour
DWORD GetBehaviour()
返回值
工具提示的行为。请参阅 SetBehaviour 函数以获取可用标志的列表。
备注
检索工具提示的行为。
CPPToolTip::SetColorBk
void SetColorBk(COLORREF color)
void SetColorBk(COLORREF crBegin, COLORREF crEnd)
void SetColorBk(COLORREF crBegin, COLORREF crMid, COLORREF crEnd)
参数
color
- 一个 COLORREF 值,包含纯色背景的 RGB 信息crBegin
- 一个 COLORREF 值,包含第一个颜色的 RGB 信息。crMid
- 一个 COLORREF 值,包含中间颜色的 RGB 信息。
与以下效果一起使用:CPPDrawManager::EFFECT_HGRADIENT
CPPDrawManager::EFFECT_VGRADIENT
CPPDrawManager::EFFECT_HCGRADIENT
CPPDrawManager::EFFECT_VCGRADIENT
CPPDrawManager::EFFECT_3HGRADIENT
CPPDrawManager::EFFECT_3VGRADIENT
CPPDrawManager::EFFECT_NOISE
CPPDrawManager::EFFECT_DIAGSHADE
CPPDrawManager::EFFECT_HSHADE
CPPDrawManager::EFFECT_VSHADE
CPPDrawManager::EFFECT_HBUMP
CPPDrawManager::EFFECT_VBUMP
CPPDrawManager::EFFECT_SOFTBUMP
CPPDrawManager::EFFECT_HARDBUMP
CPPDrawManager::EFFECT_METALcrEnd
- 一个 COLORREF 值,包含最后一个颜色的 RGB 信息。
备注
函数设置背景渐变填充的颜色。
CPPToolTip::SetEffectBk
void SetEffectBk(UINT nEffect, BYTE nGranularity = 5)
参数
nEffect
- 此值设置背景位图的效果。可以是以下值之一
CPPDrawManager::EFFECT_SOLID
CPPDrawManager::EFFECT_HGRADIENT
CPPDrawManager::EFFECT_VGRADIENT
CPPDrawManager::EFFECT_HCGRADIENT
CPPDrawManager::EFFECT_VCGRADIENT
CPPDrawManager::EFFECT_3HGRADIENT
CPPDrawManager::EFFECT_3VGRADIENT
CPPDrawManager::EFFECT_NOISE
CPPDrawManager::EFFECT_DIAGSHADE
CPPDrawManager::EFFECT_HSHADE
CPPDrawManager::EFFECT_VSHADE
CPPDrawManager::EFFECT_HBUMP
CPPDrawManager::EFFECT_VBUMP
CPPDrawManager::EFFECT_SOFTBUMP
CPPDrawManager::EFFECT_HARDBUMP
CPPDrawManager::EFFECT_METAL
nGranularity
- 此参数向背景位图添加均匀的噪声。一个好的值是 5 到 20;0 表示禁用效果。噪声具有积极作用,因为它可以隐藏调色板的步骤。如果nEffect
值是从CPPDrawManager::EFFECT_SOLID
到CPPDrawManager::EFFECT_3VGRADIENT
,则此参数无效。
备注
设置背景位图的效果。请注意,当
时,CPPDrawManager::EFFECT_NOISE
到 CPPDrawManager::EFFECT_METAL
的效果值才可用。
#define USE_SHADE //in PPDrawManager.h
只有。
CPPToolTip::AddTool
void AddTool(CWnd * pWnd, DWORD dwIdString, LPCRECT lpRectBounds = NULL, DWORD dwIDTool = 0);
与旧版本的 CPPToolTip 兼容...
void AddTool(CWnd * pWnd, LPCTSTR lpszString = NULL, LPCRECT lpRectBounds = NULL, DWORD dwIDTool = 0);
void AddTool(CWnd * pWnd, PPTOOLTIP_INFO & ti);
void AddTool(CWnd * pWnd, DWORD dwIdString, HICON hIcon, LPCRECT lpRectBounds = NULL, DWORD dwIDTool = 0);
void AddTool(CWnd * pWnd, DWORD dwIdString, DWORD dwIdIcon, CSize & szIcon = CSize(0, 0), LPCRECT lpRectBounds = NULL, DWORD dwIDTool = 0);
void AddTool(CWnd * pWnd, LPCTSTR lpszString, HICON hIcon, LPCRECT lpRectBounds = NULL, DWORD dwIDTool = 0);
void AddTool(CWnd * pWnd, LPCTSTR lpszString, DWORD dwIdIcon, CSize & szIcon = CSize(0, 0), LPCRECT lpRectBounds = NULL, DWORD dwIDTool = 0);
参数
pWnd
- 指向包含工具的窗口。lpszString
- 指向工具文本的指针。dwIdString
- 字符串资源的 IDhIcon
- 图标的句柄dwIdIcon
- 图标资源的 IDszIcon
- 指定要加载的图标的宽度和高度(以像素为单位)。lpRectBounds
- 指向 RECT 结构的指针,该结构包含工具的边界矩形坐标。
坐标相对于由 pWnd 标识的窗口的客户区的左上角。
如果未为指定窗口使用边界矩形,则为 NULL。dwIDTool
- 工具的 IDti
- 对 PPTOOLTIP_INFO 结构的引用,该结构包含工具提示的参数。
一个工具提示控件可以关联多个工具。调用此函数以将工具注册到工具提示控件,以便当鼠标指针停留在工具上时,显示存储在工具提示中的信息。
CPPToolTip::AddToolBar
void RemoveTool(CToolBar * pBar)
参数
pBar
- 指向工具栏窗口的指针。
备注
调用此函数以在工具提示控件支持的工具栏集合中注册一个工具栏。此方法会自动从工具栏样式中删除 CBRS_TOOLTIPS 样式,以禁用标准工具提示。
CPPToolTip::RemoveTool
void RemoveTool(CWnd * pWnd, LPCRECT lpRectBounds = NULL)
参数
pWnd
- 指向包含工具的窗口。-
lpRectBounds
- 指向 RECT 结构的指针,该结构包含工具的边界矩形坐标。
坐标相对于由 pWnd 标识的窗口的客户区的左上角。
如果未为指定窗口使用边界矩形,则为 NULL。
备注
调用此函数以从工具提示控件支持的工具集合中移除由 pWnd
和 lpRectBounds
指定的工具。
CPPToolTip::RemoveAllTools
void RemoveAllTools()
备注
调用此函数以从工具提示控件支持的工具集合中移除所有工具。
CPPToolTip::ShowHelpTooltip
void ShowHelpTooltip (LPPOINT pt, DWORD dwIdText, HICON hIcon = NULL);
void ShowHelpTooltip (LPPOINT pt, DWORD dwIdText, DWORD dwIdIcon, CSize & szIcon = CSize(0, 0));
void ShowHelpTooltip (LPPOINT pt, LPCTSTR lpszString, HICON hIcon = NULL);
void ShowHelpTooltip (LPPOINT pt, LPCTSTR lpszString, DWORD dwIdIcon, CSize & szIcon = CSize(0, 0));
void ShowHelpTooltip (LPPOINT pt, PPTOOLTIP_INFO & ti);
参数
pt
- 指向 POINT 结构的指针,该结构接收工具提示锚点的屏幕坐标。lpszString
- 指向帮助工具提示文本的指针。dwIdString
- 字符串资源的 IDhIcon
- 图标的句柄dwIdIcon
- 图标资源的 IDszIcon
- 指定要加载的图标的宽度和高度(以像素为单位)。ti
- 对 PPTOOLTIP_INFO 结构的引用,该结构包含工具提示的参数。
备注
在屏幕的任何位置显示帮助工具提示。
CPPToolTip::HideTooltip
void HideTooltip ();
备注
隐藏工具提示。
CPPToolTip::SetImageList
void SetImageList(UINT nIdBitmap, int cx, int cy, int nCount, COLORREF crMask /* = RGB(255, 0, 255) */)
void SetImageList(HBITMAP hBitmap, int cx, int cy, int nCount, COLORREF crMask /* = RGB(255, 0, 255) */)
参数
-
nIdBitmap
- 要与图像列表关联的位图的资源 ID。 hBitmap
- 要与图像列表关联的位图的句柄。cx
- 每个图像的尺寸(以像素为单位)。cy
- 每个图像的尺寸(以像素为单位)。-
nCount
- 图像列表最初包含的图像数量。 -
crMask
- 用于生成掩码的颜色。指定位图的此颜色的每个像素将变为黑色,掩码中的相应位将设置为一。
备注
此函数将图像列表设置为工具提示。在此函数之后,在工具提示字符串的正文中,您可以使用 <ilst> 标签,该标签将在指定位置绘制来自图像列表的图像。
CPPToolTip::SetBorder
void SetBorder(COLORREF color, int nWidth = 1, int nHeight = 1);
void SetBorder(HBRUSH hbr, int nWidth = 1, int nHeight = 1);
参数
color
- 一个 COLORREF 值,包含用于创建用于绘制边框的实心画笔的 RGB 信息。hbr
- 标识用于绘制边框的画笔的画笔句柄。nWidth
- 指定边框的宽度(以设备单位的垂直画笔笔触)。nHeight
- 指定边框的高度(以设备单位的水平画笔笔触)。
备注
调用此成员函数以使用指定的画笔绘制工具提示区域周围的边框。
CPPToolTip::HideBorder
void HideBorder()
备注
此函数隐藏工具提示区域周围的边框。
CPPToolTip::SetTooltipShadow
void SetTooltipShadow(int nOffsetX, int nOffsetY, BYTE nDarkenPercent /* = 50 */, BOOL bGradient /* = TRUE */, int nDepthX /* = 7 */, int nDepthY /* = 7 */)
CPPToolTip::SetImageShadow
void SetImageShadow(int nOffsetX, int nOffsetY, BYTE nDarkenPercent /* = 50 */, BOOL bGradient /* = TRUE */, int nDepthX /* = 7 */, int nDepthY /* = 7 */)
参数
-
nOffsetX, nOffsetY
- 阴影与对象的偏移量。 nDarkenPercent
- 阴影下的颜色将变暗的程度(0 - 100)。对于渐变阴影,最佳值为 50%,对于原始阴影则为 25。bGradient
- TRUE 表示使用渐变阴影。nDepthX, nDepthY
- 渐变阴影的渐变深度。为了获得更好的效果,请使用奇数值(3、5、7...)。
备注
此函数设置工具提示或其上图像的阴影。
CPPToolTip::SetNotify
void SetNotify(BOOL bParentNotify = TRUE)
void SetNotify(HWND hWnd)
参数
bParentNotify
- 如果为 TRUE,控件将发送通知到父窗口。否则,将不发送通知。-
hWnd
- 如果非 NULL,控件将发送通知到指定的窗口。否则,将不发送通知。
备注
此函数启用或禁用从控件将通知消息发送到目标窗口的能力。如果用户启用了从工具提示到所有者类的通知消息传递,则工具提示对象会在显示之前发送 UDM_TOOLTIP_DISPLAY 通知。在此通知的处理程序中,所有者类可以更改工具提示显示的所有参数。使用 UDM_TOOLTIP_DISPLAY 通知时,会传递 NM_PPTOOLTIP_DISPLAY 结构,其中包含所有必要的信息。
结构 NM_PPTOOLTIP_DISPLAY 如下所示
typedef struct tagNM_PPTOOLTIP_DISPLAY { NMHDR hdr; HWND hwndTool; //HWND of the window to display a tooltip LPPOINT pt; //The current screen coordinates of //the tooltip's anchor PPTOOLTIP_INFO * ti; //The pointer to the PPTOOLTIP_INFO //structure which contains parameters for //displaying tooltip } NM_PPTOOLTIP_DISPLAY;
所有者对象应处理通知消息,以便能够通过更改此结构中相应的成员来更改工具提示的外观和位置。
这是一个示例
将以下行分别添加到头文件和实现文件中。
afx_msg void NotifyDisplayTooltip(NMHDR * pNMHDR, LRESULT * result);
ON_NOTIFY (UDM_TOOLTIP_DISPLAY, NULL, NotifyDisplayTooltip)和
void CParentDlg::NotifyDisplayTooltip(NMHDR * pNMHDR, LRESULT * result) { *result = 0;
NM_PPTOOLTIP_DISPLAY * pNotify = (NM_PPTOOLTIP_DISPLAY*)pNMHDR; switch (CWnd::FromHandle(pNotify->hwndTool) ->GetDlgCtrlID()) { case IDC_BUTTON1: //Changes the tooltip's text pNotify->ti->sTooltip = _T("Dynamically changed text for BUTTON1"); break; case IDC_BUTTON2: //Changes background color of the tooltip as RED pNotify->ti->crBegin = RGB (255, 0, 0); break; } }
CPPToolTip::GetNotify
BOOL GetNotify()
返回值
如果控件通知了指定窗口,则返回 TRUE。
备注
此函数确定控件是否将 通知消息 传递给目标窗口。
CPPToolTip::SetCssStyles
void SetCssStyles(LPCTSTR lpszCssString /* = NULL */);
参数
lpszCssString
- 指向 CSS 样式字符串的指针,或 NULL(如果设置默认 CSS 样式,如 Codeproject)。
备注
调用此方法来自定义 HTML 页面上使用的 CSS 样式。有关更多信息,请参阅 CPPHtmlDrawer
类的描述。
CPPToolTip::GetCssStyles
LPCTSTR GetCssStyles();
返回值
指向包含 CSS 样式的字符串的 const 指针。
备注
调用此方法以检索 HTML 页面上使用的 CSS 样式。有关更多信息,请参阅 CPPHtmlDrawer
类的描述。
CPPToolTip::SetDelayTime
void SetDelayTime(DWORD dwDuration, DWORD dwTime)
参数
dwDuration
- 指定要检索哪个持续时间值的标志。此参数可以是以下值之一
PPTOOLTIP_TIME_AUTOPOP
检索当指针在工具的边界矩形内静止时,工具提示窗口保持可见的时间长度。
PPTOOLTIP_TIME_INITIAL
检索指针在工具的边界矩形内静止多长时间后,工具提示窗口才会出现。
PPTOOLTIP_TIME_FADEIN
检索淡入效果每个步骤的时间长度。
PPTOOLTIP_TIME_FADEOUT
检索淡出效果每个步骤的时间长度。
PPTOOLTIP_TIME_ANIMATION
检索动画每个步骤的时间长度。
为了与 CPPToolTip 的 1.x 版本兼容,还提供了以下值 TTDT_AUTOPOP
同 PPTOOLTIP_TIME_AUTOPOP
TTDT_INITIAL
同 PPTOOLTIP_TIME_INITIAL
dwTime
- 指定的延迟时间(以毫秒为单位)。
备注
调用此函数以设置工具提示控件的延迟时间。延迟时间是光标在工具上停留多长时间后才会显示工具提示窗口。默认延迟时间为 500 毫秒。
CPPToolTip::GetDelayTime
DWORD GetDelayTime(DWORD dwDuration) const
返回值
指定的延迟时间(以毫秒为单位)。
参数
dwDuration
- 指定要检索哪个持续时间值的标志。有关有效值的描述,请参阅 CPPToolTip::SetDelayTime。
备注
检索当前为CPPToolTip控件设置的初始、弹出和重显持续时间
CPPToolTip::SetDefaultSizes
void SetDefaultSizes(BOOL bBalloonSize = TRUE)
参数
bBalloonSize
- 如果为 TRUE,则 CPPToolTip 对象将设置为气球尺寸,否则设置为标准尺寸。
备注
此函数将所有 尺寸 设置为默认值。
CPPToolTip::SetSize
void SetSize(DWORD dwSizeIndex, DWORD dwValue)
参数
dwSizeIndex
- 尺寸的索引。此参数可以是以下值之一
PPTTSZ_ROUNDED_CX
PPTTSZ_ROUNDED_CY用于绘制圆角的椭圆的宽度和高度。
PPTTSZ_MARGIN_CX
PPTTSZ_MARGIN_CY文本相对于工具提示边缘的左、右和上、下边距。
PPTTSZ_WIDTH_ANCHOR
工具提示锚点的宽度。
PPTTSZ_HEIGHT_ANCHOR
工具提示锚点的高度。
PPTTSZ_MARGIN_ANCHOR
工具提示锚点与其边缘的边距。
PPTTSZ_OFFSET_ANCHOR_CX
PPTTSZ_OFFSET_ANCHOR_CY工具提示锚点相对于光标热点的水平和垂直偏移量。
dwValue
- 尺寸(以像素为单位)。
备注
调用此成员函数以设置工具提示的尺寸。有关更多信息,请参见下图。
CPPToolTip::GetSize
DWORD GetSize(DWORD nSizeIndex)
返回值
指定值的尺寸。
参数
dwSizeIndex
- 尺寸的索引。有关有效值的描述,请参阅 CPPToolTip::SetSize。
备注
此方法返回指定值的尺寸。有关更多信息,请参阅 CPPToolTip::SetSize。
CPPToolTip::SetDirection
void SetDirection(DWORD dwDirection = PPTOOLTIP_BOTTOMEDGE_LEFT)
参数
dwDirection
- 工具提示相对于鼠标指针的位置方向。此参数可以是以下值之一
PPTOOLTIP_TOPEDGE_LEFT
顶边左角
PPTOOLTIP_TOPEDGE_RIGHT
顶边右角。
PPTOOLTIP_TOPEDGE_CENTER
位于顶边中心。
PPTOOLTIP_BOTTOMEDGE_LEFT
底边左角
PPTOOLTIP_BOTTOMEDGE_RIGHT
底边右角。
PPTOOLTIP_BOTTOMEDGE_CENTER
位于底边中心。
PPTOOLTIP_LEFTEDGE_TOP
左边上角
PPTOOLTIP_LEFTEDGE_BOTTOM
左边下角。
PPTOOLTIP_LEFTEDGE_VCENTER
位于左边中心。
PPTOOLTIP_RIGHTEDGE_TOP
右边上角
PPTOOLTIP_RIGHTEDGE_BOTTOM
右边下角。
PPTOOLTIP_RIGHTEDGE_VCENTER
位于右边中心。
为了与 CPPToolTip 的 1.x 版本兼容,还提供了以下值 PPTOOLTIP_LEFT_TOP
同 PPTOOLTIP_TOPEDGE_LEFT。
PPTOOLTIP_RIGHT_TOP
同 PPTOOLTIP_TOPEDGE_RIGHT。
PPTOOLTIP_LEFT_BOTTOM
同 PPTOOLTIP_BOTTOMEDGE_LEFT。
PPTOOLTIP_RIGHT_BOTTOM
同 PPTOOLTIP_BOTTOMEDGE_RIGHT。
备注
设置工具提示锚点的位置。有关更多信息,请参阅本页上方。
CPPToolTip::GetDirection
DWORD GetDirection()
返回值
工具提示锚点的位置。有关有效值的描述,请参阅 CPPToolTip::SetDirection。
备注
获取工具提示锚点的位置。
CPPToolTip::SetTransparency
void SetTransparency(BYTE nTransparency = 0)
参数
nTransparency
- 用于工具提示的透明度值。默认值 0 假定您的工具提示是不透明的,而 0xFF (255) 表示工具提示完全透明。
备注
设置工具提示的透明度。
CPPToolTip::GetTransparency
BYTE GetTransparency()
返回值
用于工具提示的透明度值。
CPPToolTip::SetDebugMode
void SetDebugMode(BOOL bDebug /*= TRUE*/)
参数
bDebug
- 启用或禁用工具提示的调试模式。
备注
调用此函数以设置工具提示的调试模式。在此模式下,即使工具提示的工具集合中没有可用的工具,工具提示也会显示在父窗口的任何控件上。调试模式下的工具提示是关于鼠标下方的窗口的信息(所有者、标题、边界矩形、ID 等)。
CPPToolTip::MenuToolPosition
void MenuToolPosition(DWORD nPos /*= PPTOOLTIP_MENU_LEFT | PPTOOLTIP_MENU_TOP*/)
参数
nPos
- 工具提示的位置。此参数可以是单个水平值和单个垂直值的任意组合 CPPToolTip。
水平位置 PPTOOLTIP_MENU_LEFT
PPTOOLTIP_MENU_RIGHT
PPTOOLTIP_MENU_CENTER
垂直位置 PPTOOLTIP_MENU_TOP
PPTOOLTIP_MENU_BOTTOM
PPTOOLTIP_MENU_VCENTER
备注
设置工具提示锚点相对于菜单项的位置。
CPPToolTip::EnableEscapeSequences
void EnableEscapeSequences(BOOL bEnable)
参数
-
bEnable
- 启用转义序列。如果禁用了转义序列,HTML-lite 编译器将忽略小于 0x20 的代码(例如 \n、\r、\t)。
备注
调用此函数以在 HTML 字符串中启用或禁用转义序列。
CPPToolTip::SetMaxTipWidth
void SetMaxTipWidth(int nWidth);
参数
nWidth
- 要设置的最大工具提示窗口宽度。
备注
设置工具提示窗口的最大宽度。
CPPToolTip::RelayEvent
void RelayEvent(MSG* pMsg)
参数
pMsg
- 指向 MSG 结构的指针,该结构包含要中继的消息。
备注
调用此函数以将鼠标消息传递给工具提示控件进行处理。工具提示控件仅处理以下消息,这些消息由 RelayEvent 发送给它:
WM_LBUTTONDOWN | WM_MOUSEMOVE |
WM_LBUTTONUP | WM_RBUTTONDOWN |
WM_MBUTTONDOWN | WM_RBUTTONUP |
WM_MBUTTONUP |
CPPToolTip::GetVersionI()
short GetVersionI()
返回值
CPPToolTip 的版本号。
备注
以 short 数字形式返回 CPPToolTip 版本。除以 10 可获得实际版本。
CPPToolTip::GetVersionC()
LPCTSTR GetVersionC()
返回值
CPPToolTip 的版本号(字符串格式)。
备注
以字符串形式返回 CPPToolTip 版本。
PPTOOLTIP_INFO 结构
struct PPTOOLTIP_INFO
{
UINT nIDTool;
CRect rectBounds;
CString sTooltip;
UINT nMask;
UINT nStyles;
UINT nDirection;
UINT nEffect;
UINT nBehaviour;
BYTE nGranularity;
BYTE nTransparency;
COLORREF crBegin;
COLORREF crMid;
COLORREF crEnd;
} PPTOOLTIP_INFO;
nIDTool |
工具的 ID | |
rectBounds |
指向 RECT 结构的指针,该结构包含工具的边界矩形坐标。 坐标相对于由 pWnd 标识的窗口的客户区的左上角。 如果未为指定窗口使用边界矩形,则为 NULL。 |
|
sTooltip |
包含工具文本的字符串。 | |
nMask |
非默认参数的掩码。此参数可以是以下值的任意组合。 |
|
nStyles |
||
nDirection |
此值设置工具提示锚点的位置。有关有效值的描述,请参阅 CPPToolTip::SetDirection。 | |
nEffect |
此值设置背景位图的效果。有关有效值的描述,请参阅 CPPToolTip::SetEffectBk。 | |
nBehaviour |
此值设置工具提示的行为。有关可用标志的列表,请参阅 CPPToolTip::SetBehaviour 函数。 | |
nGranularity |
此参数向背景位图添加均匀的噪声。有关有效值的描述,请参阅 CPPToolTip::SetEffectBk。 | |
nTransparency |
||
crBegin, crMid, crEnd |
这些值设置背景渐变填充的颜色。有关有效值的描述,请参阅 CPPToolTip::SetColorBk。 |
历史
2003年2月14日 | 首次发布 |
2003年2月17日 | 发布版本 1.1 |
2003年2月19日 | 发布版本 1.2 |
2003年4月2日 | 发布版本 1.3 |
2003年4月13日 | 发布版本 1.4 |
2003年4月17日 | 发布版本 1.5 |
2004年3月12日 | 发布版本 2.0 |
2004年11月21日 | 发布版本 2.1 |
感谢...
- Yaroslav Petrikevich 感谢您在编写此文件方面的帮助。
- Davide Calabro 感谢他的
CButtonST
类,从中找到了某些问题的解决方案。 - Chris Maunder 感谢他关于控件子类化的文章。
- Tomasz Sowinski 感谢他在工具提示方面的帮助。
- Michael Ushakov 感谢他在处理矩形和工具栏方面的帮助和建议。
- 许多人在 CodeProject 的论坛上帮助了我,并给出了答案。
已知问题
- 如果您能帮助我,请告知我,以便我将其纳入下一个版本。
计划增强功能
- 如果您有任何其他改进建议,请告诉我,以便我将其纳入下一个版本。
联系作者
您被鼓励在任何地方使用此类;CPPTooltip 不需要任何费用。随意添加修改和/或修复错误,但请将任何这些发送给我! 我!