65.9K
CodeProject 正在变化。 阅读更多。
Home

CPPToolTip v2.1

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.96/5 (343投票s)

2003年2月13日

CPOL

23分钟阅读

viewsIcon

1777317

downloadIcon

33157

一个允许您将控件的数据显示为工具提示的类。

将锚点放置在任何边缘

菜单项的工具提示

工具栏项的工具提示

地图项的工具提示

不同控件的标题提示

带有超链接和热区的工具提示

目录

功能

  • 标准和气球工具提示
  • 内置的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
PPDrawManager.cpp

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);
}
void CMainFrame::OnEnterIdle(UINT nWhy, CWnd* pWho) { m_tooltip.OnEnterIdle(nWhy, pWho); }
5. 添加 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概述 | 类成员

 

CPPToolTip::Create

BOOL Create (CWnd* pParentWnd, BOOL bBalloonSize = TRUE);

参数

  • pParentWnd - 指向工具提示控件的父窗口,通常是 CDialog。它不能为空。
  • bBalloonSize - 如果为 TRUE,则 CPPToolTip 对象将设置为气球尺寸,否则设置为标准尺寸。

返回值

如果 CPPToolTip 对象成功创建,则返回非零值;否则返回 0。

备注
您通过两个步骤来构造 CPPToolTip。首先调用构造函数来构造 CPPToolTip 对象;然后调用 Create 来创建工具提示控件并将其附加到 CPPToolTip 对象。

CPPToolTip概述 | 类成员

CPPToolTip::SetBehaviour

void SetBehaviour(DWORD dwBehaviour = 0)

参数

  • dwBehaviour - 工具提示的行为。此参数可以为以下值之一
    • PPTOOLTIP_MULTIPLE_SHOW - 此选项为指定的工具或工具提示对象的所有工具设置多次显示工具提示。使用此选项,工具提示将在鼠标指针每次停止时显示。
    • PPTOOLTIP_CLOSE_LEAVEWND - 如果设置此标志,则当鼠标指针离开控件时,工具提示将隐藏。
    • PPTOOLTIP_NOCLOSE_OVER - 如果设置此标志,则当鼠标指针停留在工具提示上时,工具提示不会隐藏
    • PPTOOLTIP_DISABLE_AUTOPOP - 具有此标志的工具提示不会从自动弹出计时器隐藏。此标志会自动添加到帮助工具提示(请参阅 ShowHelpTooltip)。

备注

调用函数来设置工具提示的行为。

CPPToolTip概述 | 类成员

CPPToolTip::GetBehaviour

DWORD GetBehaviour()

返回值

工具提示的行为。请参阅 SetBehaviour 函数以获取可用标志的列表。

备注

检索工具提示的行为。

CPPToolTip概述 | 类成员

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_METAL

  • crEnd - 一个 COLORREF 值,包含最后一个颜色的 RGB 信息。

备注

函数设置背景渐变填充的颜色。

CPPToolTip概述 | 类成员

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_SOLIDCPPDrawManager::EFFECT_3VGRADIENT,则此参数无效。

备注

设置背景位图的效果。请注意,当
时,CPPDrawManager::EFFECT_NOISECPPDrawManager::EFFECT_METAL 的效果值才可用。

#define USE_SHADE //in PPDrawManager.h

只有。

CPPToolTip概述 | 类成员

CPPToolTip::AddTool

void AddTool(CWnd * pWnd, DWORD dwIdString, LPCRECT lpRectBounds = NULL, DWORD dwIDTool = 0);
void AddTool(CWnd * pWnd, LPCTSTR lpszString = NULL, LPCRECT lpRectBounds = NULL, DWORD dwIDTool = 0);
void AddTool(CWnd * pWnd, PPTOOLTIP_INFO & ti);
与旧版本的 CPPToolTip 兼容...
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 - 字符串资源的 ID
  • hIcon - 图标的句柄
  • dwIdIcon - 图标资源的 ID
  • szIcon - 指定要加载的图标的宽度和高度(以像素为单位)。
  • lpRectBounds - 指向 RECT 结构的指针,该结构包含工具的边界矩形坐标。
    坐标相对于由 pWnd 标识的窗口的客户区的左上角。
    如果未为指定窗口使用边界矩形,则为 NULL
  • dwIDTool - 工具的 ID
  • ti - 对 PPTOOLTIP_INFO 结构的引用,该结构包含工具提示的参数。
备注

一个工具提示控件可以关联多个工具。调用此函数以将工具注册到工具提示控件,以便当鼠标指针停留在工具上时,显示存储在工具提示中的信息。

CPPToolTip概述 | 类成员

CPPToolTip::AddToolBar

void RemoveTool(CToolBar * pBar)

参数

  • pBar - 指向工具栏窗口的指针。

备注

调用此函数以在工具提示控件支持的工具栏集合中注册一个工具栏。此方法会自动从工具栏样式中删除 CBRS_TOOLTIPS 样式,以禁用标准工具提示。

CPPToolTip概述 | 类成员

CPPToolTip::RemoveTool

void RemoveTool(CWnd * pWnd, LPCRECT lpRectBounds = NULL)

参数

  • pWnd - 指向包含工具的窗口。
  • lpRectBounds - 指向 RECT 结构的指针,该结构包含工具的边界矩形坐标。
    坐标相对于由 pWnd 标识的窗口的客户区的左上角。
    如果未为指定窗口使用边界矩形,则为 NULL

备注

调用此函数以从工具提示控件支持的工具集合中移除由 pWndlpRectBounds 指定的工具。

CPPToolTip概述 | 类成员

CPPToolTip::RemoveAllTools

void RemoveAllTools()

备注

调用此函数以从工具提示控件支持的工具集合中移除所有工具。

CPPToolTip概述 | 类成员

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 - 字符串资源的 ID
  • hIcon - 图标的句柄
  • dwIdIcon - 图标资源的 ID
  • szIcon - 指定要加载的图标的宽度和高度(以像素为单位)。
  • ti - 对 PPTOOLTIP_INFO 结构的引用,该结构包含工具提示的参数。

备注

在屏幕的任何位置显示帮助工具提示。

CPPToolTip概述 | 类成员

CPPToolTip::HideTooltip

void HideTooltip ();

备注

隐藏工具提示。

CPPToolTip概述 | 类成员

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概述 | 类成员

 

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概述 | 类成员

CPPToolTip::HideBorder

void HideBorder()

备注

此函数隐藏工具提示区域周围的边框。

CPPToolTip概述 | 类成员

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概述 | 类成员

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概述 | 类成员

CPPToolTip::GetNotify

BOOL GetNotify()

返回值

如果控件通知了指定窗口,则返回 TRUE。

备注

此函数确定控件是否将 通知消息 传递给目标窗口。

CPPToolTip概述 | 类成员

CPPToolTip::SetCssStyles

void SetCssStyles(LPCTSTR lpszCssString /* = NULL */);

参数

  • lpszCssString - 指向 CSS 样式字符串的指针,或 NULL(如果设置默认 CSS 样式,如 Codeproject)。

备注
调用此方法来自定义 HTML 页面上使用的 CSS 样式。有关更多信息,请参阅 CPPHtmlDrawer 类的描述。

CPPToolTip概述 | 类成员

 

CPPToolTip::GetCssStyles

LPCTSTR GetCssStyles();

返回值

指向包含 CSS 样式的字符串的 const 指针。

备注
调用此方法以检索 HTML 页面上使用的 CSS 样式。有关更多信息,请参阅 CPPHtmlDrawer 类的描述。

CPPToolTip概述 | 类成员

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概述 | 类成员

CPPToolTip::GetDelayTime

DWORD GetDelayTime(DWORD dwDuration) const

返回值

指定的延迟时间(以毫秒为单位)。

参数

  • dwDuration - 指定要检索哪个持续时间值的标志。有关有效值的描述,请参阅 CPPToolTip::SetDelayTime

备注

检索当前为CPPToolTip控件设置的初始、弹出和重显持续时间

CPPToolTip概述 | 类成员

CPPToolTip::SetDefaultSizes

void SetDefaultSizes(BOOL bBalloonSize = TRUE)

参数

  • bBalloonSize - 如果为 TRUE,则 CPPToolTip 对象将设置为气球尺寸,否则设置为标准尺寸。

备注

此函数将所有 尺寸 设置为默认值。

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概述 | 类成员

CPPToolTip::GetSize

DWORD GetSize(DWORD nSizeIndex)

返回值

指定值的尺寸。

参数

备注

此方法返回指定值的尺寸。有关更多信息,请参阅 CPPToolTip::SetSize

CPPToolTip概述 | 类成员

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概述 | 类成员

CPPToolTip::GetDirection

DWORD GetDirection()

返回值

工具提示锚点的位置。有关有效值的描述,请参阅 CPPToolTip::SetDirection

备注

获取工具提示锚点的位置。

CPPToolTip概述 | 类成员

CPPToolTip::SetTransparency

void SetTransparency(BYTE nTransparency = 0)

参数

  • nTransparency - 用于工具提示的透明度值。默认值 0 假定您的工具提示是不透明的,而 0xFF (255) 表示工具提示完全透明。

备注

设置工具提示的透明度。

CPPToolTip概述 | 类成员

CPPToolTip::GetTransparency

BYTE GetTransparency()

返回值

用于工具提示的透明度值。

CPPToolTip概述 | 类成员

CPPToolTip::SetDebugMode

void SetDebugMode(BOOL bDebug /*= TRUE*/)

参数

  • bDebug - 启用或禁用工具提示的调试模式。

备注

调用此函数以设置工具提示的调试模式。在此模式下,即使工具提示的工具集合中没有可用的工具,工具提示也会显示在父窗口的任何控件上。调试模式下的工具提示是关于鼠标下方的窗口的信息(所有者、标题、边界矩形、ID 等)。

CPPToolTip概述 | 类成员

 

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概述 | 类成员

 

CPPToolTip::EnableEscapeSequences

void EnableEscapeSequences(BOOL bEnable)

参数

  • bEnable - 启用转义序列。如果禁用了转义序列,HTML-lite 编译器将忽略小于 0x20 的代码(例如 \n、\r、\t)。

备注

调用此函数以在 HTML 字符串中启用或禁用转义序列。

CPPToolTip概述 | 类成员

 

CPPToolTip::SetMaxTipWidth

void SetMaxTipWidth(int nWidth);

参数

  • nWidth - 要设置的最大工具提示窗口宽度。

备注

设置工具提示窗口的最大宽度。

CPPToolTip概述 | 类成员

 

CPPToolTip::RelayEvent

void RelayEvent(MSG* pMsg)

参数

  • pMsg - 指向 MSG 结构的指针,该结构包含要中继的消息。

备注

调用此函数以将鼠标消息传递给工具提示控件进行处理。工具提示控件仅处理以下消息,这些消息由 RelayEvent 发送给它:

WM_LBUTTONDOWN WM_MOUSEMOVE
WM_LBUTTONUP WM_RBUTTONDOWN
WM_MBUTTONDOWN WM_RBUTTONUP
WM_MBUTTONUP  

CPPToolTip概述 | 类成员

 

CPPToolTip::GetVersionI()

short GetVersionI()

返回值

CPPToolTip 的版本号。

备注

以 short 数字形式返回 CPPToolTip 版本。除以 10 可获得实际版本。

CPPToolTip概述 | 类成员

 

CPPToolTip::GetVersionC()

LPCTSTR GetVersionC()

返回值

CPPToolTip 的版本号(字符串格式)。

备注

以字符串形式返回 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

非默认参数的掩码。此参数可以是以下值的任意组合。
  • PPTOOLTIP_MASK_STYLES
  • PPTOOLTIP_MASK_EFFECT
  • PPTOOLTIP_MASK_COLORS
  • PPTOOLTIP_MASK_DIRECTION
  • PPTOOLTIP_MASK_BEHAVIOUR
  • PPTOOLTIP_MASK_TRANSPARENCY
  •  

    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
    - 添加了新的样式 PPTOOLTIP_SHOW_DISABLEDPPTOOLTIP_SHOW_INACTIVE
    - 在 Create()SetDefaultSizes() 方法中添加了新功能,用于设置工具提示的尺寸类型。
    - 修复了 0 TTDT_AUTOPOP 值的 bug。
    - 修复了切换应用程序(Alt+Tab)后显示工具提示的 bug。

     2003年2月19日

    发布版本 1.2
    - 添加了对矩形的工具提示支持
    - 添加了新的 FindToolIsExistToolSetAtTool 方法。
    - 许多方法已更新。
    - 新的工具集合基于 CArray 而不是 CMap。
    - 向 PPTOOLTIP_INFO 结构添加了三个成员。
    - 从 NM_PPTOOLTIP_DISPLAY 结构中移除了指向窗口的指针。
    - 添加了新的演示,用于实现带有工具栏的工具提示。

     2003年4月2日

    发布版本 1.3
    - 添加了对工具提示作为帮助窗口的支持(请参阅 ShowHelpTooltip)。
    - 为图标添加了垂直对齐方式(请参阅 Styles)。
    - 支持不同大小的图标(16x16、32x32、48x48 等)。
    - 添加了新的 行为
    - 如果 PPTOOLTIP_INFO 成员(如 sTooltip)为空且 hIconNULL,则不再显示工具提示。
    - 在工具提示文本内部添加了两个 标签 <img><ilst>,以支持绘制位图和图标。
    - 几次小更新。

     2003年4月13日

    发布版本 1.4
    - 添加了两个 标签 <bmp><icon>,以支持在工具提示文本内部绘制位图和图标。
    - 缩放使用 <img><bmp><icon> 标签绘制的图像。
    - 添加了新的 行为(PPTOOLTIP_DISABLE_AUTOPOP)。
    - 几次小更新。

     2003年4月17日

    发布版本 1.5
    - 几个版本的 AddTool 方法扩展了新的 szIcon 参数。
    - 添加了显示子窗口工具提示的功能(感谢 Michael Ushakov)。
    - 几次小更新。

     2004年3月12日

    发布版本 2.0
    - 工具提示的新核心。更多的更改和新功能。但是,将使用版本 1.x 的程序更新到版本 2.0 仍存在复杂性。抱歉!!! :(

     2004年11月21日

    发布版本 2.1
    - 添加了对工具提示中动画的支持(查看 SetDelayTime 方法和 <ilst> 标签的 "speed" 参数)。
    - 修复了 UNICODE 的一些问题。
    - 修正了某些工具提示方向和大工具提示的绘制。
    - 更改了 GetWndFromPoint 机制。
    - 添加了 SetMaxTipWidth 方法。

    感谢...

    • Yaroslav Petrikevich 感谢您在编写此文件方面的帮助。
    • Davide Calabro 感谢他的 CButtonST 类,从中找到了某些问题的解决方案。
    • Chris Maunder 感谢他关于控件子类化的文章。
    • Tomasz Sowinski 感谢他在工具提示方面的帮助。
    • Michael Ushakov 感谢他在处理矩形和工具栏方面的帮助和建议。
    • 许多人在 CodeProject 的论坛上帮助了我,并给出了答案。

    已知问题

    • 如果您能帮助我,请告知我,以便我将其纳入下一个版本。

    计划增强功能

    • 如果您有任何其他改进建议,请告诉我,以便我将其纳入下一个版本。

    联系作者

    您被鼓励在任何地方使用此类;CPPTooltip 不需要任何费用。随意添加修改和/或修复错误,但请将任何这些发送给我!

    © . All rights reserved.