CToolTipCtrl
Class
Encapsulates the functionality of a "tooltip control," a small pop-up window that displays a single line of text describing the purpose of a tool in an application.
Syntax
class CToolTipCtrl : public CWnd
Members
Public Constructors
Name | Description |
---|---|
CToolTipCtrl::CToolTipCtrl |
Constructs a CToolTipCtrl object. |
Public Methods
Name | Description |
---|---|
CToolTipCtrl::Activate |
Activates and deactivates the tooltip control. |
CToolTipCtrl::AddTool |
Registers a tool with the tooltip control. |
CToolTipCtrl::AdjustRect |
Converts between a tooltip control's text display rectangle and its window rectangle. |
CToolTipCtrl::Create |
Creates a tooltip control and attaches it to a CToolTipCtrl object. |
CToolTipCtrl::CreateEx |
Creates a tooltip control with the specified Windows extended styles and attaches it to a CToolTipCtrl object. |
CToolTipCtrl::DelTool |
Removes a tool from the tooltip control. |
CToolTipCtrl::GetBubbleSize |
Retrieves the size of the tooltip. |
CToolTipCtrl::GetCurrentTool |
Retrieves information, such as the size, position, and text, of the tooltip window that the current tooltip control displays. |
CToolTipCtrl::GetDelayTime |
Retrieves the initial, pop-up, and reshow durations that are currently set for a tooltip control. |
CToolTipCtrl::GetMargin |
Retrieves the top, left, bottom, and right margins that are set for a tooltip window. |
CToolTipCtrl::GetMaxTipWidth |
Retrieves the maximum width for a tooltip window. |
CToolTipCtrl::GetText |
Retrieves the text that a tooltip control maintains for a tool. |
CToolTipCtrl::GetTipBkColor |
Retrieves the background color in a tooltip window. |
CToolTipCtrl::GetTipTextColor |
Retrieves the text color in a tooltip window. |
CToolTipCtrl::GetTitle |
Retrieves the title of the current tooltip control. |
CToolTipCtrl::GetToolCount |
Retrieves a count of the tools maintained by a tooltip control. |
CToolTipCtrl::GetToolInfo |
Retrieves the information that a tooltip control maintains about a tool. |
CToolTipCtrl::HitTest |
Tests a point to determine whether it is within the bounding rectangle of the given tool. If so, retrieves information about the tool. |
CToolTipCtrl::Pop |
Removes a displayed tooltip window from view. |
CToolTipCtrl::Popup |
Causes the current tooltip control to display at the coordinates of the last mouse message. |
CToolTipCtrl::RelayEvent |
Passes a mouse message to a tooltip control for processing. |
CToolTipCtrl::SetDelayTime |
Sets the initial, pop-up, and reshow durations for a tooltip control. |
CToolTipCtrl::SetMargin |
Sets the top, left, bottom, and right margins for a tooltip window. |
CToolTipCtrl::SetMaxTipWidth |
Sets the maximum width for a tooltip window. |
CToolTipCtrl::SetTipBkColor |
Sets the background color in a tooltip window. |
CToolTipCtrl::SetTipTextColor |
Sets the text color in a tooltip window. |
CToolTipCtrl::SetTitle |
Adds a standard icon and title string to a tooltip. |
CToolTipCtrl::SetToolInfo |
Sets the information that a tooltip maintains for a tool. |
CToolTipCtrl::SetToolRect |
Sets a new bounding rectangle for a tool. |
CToolTipCtrl::SetWindowTheme |
Sets the visual style of the tooltip window. |
CToolTipCtrl::Update |
Forces the current tool to be redrawn. |
CToolTipCtrl::UpdateTipText |
Sets the tooltip text for a tool. |
Remarks
A "tool" is either a window, such as a child window or control, or an application-defined rectangular area within a window's client area. A tooltip is hidden most of the time, appearing only when the user puts the cursor on a tool and leaves it there for approximately one-half second. The tooltip appears near the cursor and disappears when the user clicks a mouse button or moves the cursor off the tool.
CToolTipCtrl
provides the functionality to control the initial time and duration of the tooltip, the margin widths surrounding the tooltip text, the width of the tooltip window itself, and the background and text color of the tooltip. A single tooltip control can provide information for more than one tool.
The CToolTipCtrl
class provides the functionality of the Windows common tooltip control. This control (and therefore the CToolTipCtrl
class) is available only to programs running under Windows 95/98 and Windows NT versions 3.51 and later.
For more information about enabling tooltips, see Tool Tips in Windows not Derived from CFrameWnd
.
For more information on using CToolTipCtrl
, see Controls and Using CToolTipCtrl
.
Inheritance Hierarchy
CToolTipCtrl
Requirements
Header: afxcmn.h
CToolTipCtrl::Activate
Call this function to activate or deactivate a tooltip control.
void Activate(BOOL bActivate);
Parameters
bActivate
Specifies whether the tooltip control is to be activated or deactivated.
Remarks
If bActivate
is TRUE
, the control is activated; if FALSE
, it is deactivated.
When a tooltip control is active, the tooltip information appears when the cursor is on a tool that is registered with the control; when it is inactive, the tooltip information does not appear, even when the cursor is on a tool.
Example
See the example for CPropertySheet::GetTabControl
.
CToolTipCtrl::AddTool
Registers a tool with the tooltip control.
BOOL AddTool(
CWnd* pWnd,
UINT nIDText,
LPCRECT lpRectTool = NULL,
UINT_PTR nIDTool = 0);
BOOL AddTool(
CWnd* pWnd,
LPCTSTR lpszText = LPSTR_TEXTCALLBACK,
LPCRECT lpRectTool = NULL,
UINT_PTR nIDTool = 0);
Parameters
pWnd
Pointer to the window that contains the tool.
nIDText
ID of the string resource that contains the text for the tool.
lpRectTool
Pointer to a RECT
structure containing coordinates of the tool's bounding rectangle. The coordinates are relative to the upper-left corner of the client area of the window identified by pWnd
.
nIDTool
ID of the tool.
lpszText
Pointer to the text for the tool. If this parameter contains the value LPSTR_TEXTCALLBACK
, TTN_NEEDTEXT
notification messages go to the parent of the window that pWnd
points to.
Return Value
Nonzero if successful; otherwise 0.
Remarks
The lpRectTool
and nIDTool
parameters must both be valid, or if lpRectTool
is NULL
, nIDTool
must be 0.
A tooltip control can be associated with more than one tool. Call this function to register a tool with the tooltip control, so that the information stored in the tooltip is displayed when the cursor is on the tool.
Note
You cannot set a tooltip to a static control using AddTool
.
Example
See the example for CPropertySheet::GetTabControl
.
CToolTipCtrl::AdjustRect
Converts between a tooltip control's text display rectangle and its window rectangle.
BOOL AdjustRect(
LPRECT lprc,
BOOL bLarger = TRUE);
Parameters
lprc
Pointer to a RECT
structure that holds either a tooltip window rectangle or a text display rectangle.
bLarger
If TRUE
, lprc
is used to specify a text-display rectangle, and it receives the corresponding window rectangle. If FALSE
, lprc
is used to specify a window rectangle, and it receives the corresponding text display rectangle.
Return Value
Nonzero if the rectangle is successfully adjusted; otherwise 0.
Remarks
This member function calculates a tooltip control's text display rectangle from its window rectangle, or the tooltip window rectangle needed to display a specified text display rectangle.
This member function implements the behavior of the Win32 message TTM_ADJUSTRECT
, as described in the Windows SDK.
CToolTipCtrl::Create
Creates a tooltip control and attaches it to a CToolTipCtrl
object.
virtual BOOL Create(CWnd* pParentWnd, DWORD dwStyle = 0);
Parameters
pParentWnd
Specifies the tooltip control's parent window, usually a CDialog
. It must not be NULL
.
dwStyle
Specifies the tooltip control's style. See the Remarks section for more information.
Return Value
Nonzero if the CToolTipCtrl
object is successfully created; otherwise 0.
Remarks
You construct a CToolTipCtrl
in two steps. First, call the constructor to construct the CToolTipCtrl
object, and then call Create
to create the tooltip control and attach it to the CToolTipCtrl
object.
The dwStyle
parameter can be any combination of Window Styles. In addition, a tooltip control has two class-specific styles: TTS_ALWAYSTIP
and TTS_NOPREFIX
.
Style | Meaning |
---|---|
TTS_ALWAYSTIP |
Specifies that the tooltip will appear when the cursor is on a tool, regardless of whether the tooltip control's owner window is active or inactive. Without this style, the tooltip control appears when the tool's owner window is active, but not when it is inactive. |
TTS_NOPREFIX |
This style prevents the system from stripping the ampersand (& ) character from a string. If a tooltip control does not have the TTS_NOPREFIX style, the system automatically strips ampersand characters, allowing an application to use the same string as both a menu item and as text in a tooltip control. |
A tooltip control has the WS_POPUP
and WS_EX_TOOLWINDOW
window styles, regardless of whether you specify them when creating the control.
To create a tooltip control with extended windows styles, call CToolTipCtrl::CreateEx
instead of Create
.
Example
See the example for CPropertySheet::GetTabControl
.
CToolTipCtrl::CreateEx
Creates a control (a child window) and associates it with the CToolTipCtrl
object.
virtual BOOL CreateEx(
CWnd* pParentWnd,
DWORD dwStyle = 0,
DWORD dwStyleEx = 0);
Parameters
pParentWnd
A pointer to the window that is the control's parent.
dwStyle
Specifies the tooltip control's style. See the Remarks section of Create
for more information.
dwStyleEx
Specifies the extended style of the control being created. For a list of extended Windows styles, see the dwExStyle
parameter for CreateWindowEx
in the Windows SDK.
Return Value
Nonzero if successful otherwise 0.
Remarks
Use CreateEx
instead of Create
to apply extended Windows styles, specified by the Windows extended style preface WS_EX_
.
CToolTipCtrl::CToolTipCtrl
Constructs a CToolTipCtrl
object.
CToolTipCtrl();
Remarks
You must call Create
after constructing the object.
Example
// Declare a CToolTipCtrl object.
CToolTipCtrl m_ToolTipCtrl;
CToolTipCtrl::DelTool
Removes the tool specified by pWnd
and nIDTool
from the collection of tools supported by a tooltip control.
void DelTool(
CWnd* pWnd,
UINT_PTR nIDTool = 0);
Parameters
pWnd
Pointer to the window that contains the tool.
nIDTool
ID of the tool.
CToolTipCtrl::GetBubbleSize
Retrieves the size of the tooltip.
CSize GetBubbleSize(LPTOOLINFO lpToolInfo) const;
Parameters
lpToolInfo
A pointer to the tooltip's TOOLINFO
structure.
Return Value
The size of the tooltip.
Remarks
This member function implements the behavior of the Win32 message TTM_GETBUBBLESIZE
, as described in the Windows SDK.
CToolTipCtrl::GetCurrentTool
Retrieves information, such as the size, position, and text, of the tooltip window displayed by the current tooltip control.
BOOL GetCurrentTool(LPTOOLINFO lpToolInfo) const;
Parameters
lpToolInfo
[out] Pointer to a TOOLINFO
structure that receives information about the current tooltip window.
Return Value
TRUE
if the information is retrieved successfully; otherwise, FALSE
.
Remarks
This method sends the TTM_GETCURRENTTOOL
message, which is described in the Windows SDK.
Example
The following code example retrieves information about the current tooltip window.
{
//Get information about the current tooltip.
TOOLINFO tInfo = {0};
tInfo.cbSize = sizeof(TOOLINFO);
CToolBarCtrl& m_toolBarCtrl = m_wndToolBar.GetToolBarCtrl();
CToolTipCtrl* m_toolTip = m_toolBarCtrl.GetToolTips();
BOOL bRet = m_toolTip->GetCurrentTool( &tInfo );
}
CToolTipCtrl::GetDelayTime
Retrieves the initial, pop-up, and reshow durations currently set for a tooltip control.
int GetDelayTime(DWORD dwDuration) const;
Parameters
dwDuration
Flag that specifies which duration value will be retrieved. This parameter can be one of the following values:
TTDT_AUTOPOP
Retrieve the length of time the tooltip window remains visible if the pointer is stationary within a tool's bounding rectangle.TTDT_INITIAL
Retrieve the length of time the pointer must remain stationary within a tool's bounding rectangle before the tooltip window appears.TTDT_RESHOW
Retrieve the length of time it takes for subsequent tooltip windows to appear as the pointer moves from one tool to another.
Return Value
The specified delay time, in milliseconds
Remarks
This member function implements the behavior of the Win32 message TTM_GETDELAYTIME
, as described in the Windows SDK.
CToolTipCtrl::GetMargin
Retrieves the top, left, bottom, and right margins set for a tooltip window.
void GetMargin(LPRECT lprc) const;
Parameters
lprc
Address of a RECT
structure that will receive the margin information. The members of the RECT
structure do not define a bounding rectangle. For the purpose of this message, the structure members are interpreted as follows:
Member | Representation |
---|---|
top |
Distance between top border and top of tooltip text, in pixels. |
left |
Distance between left border and left end of tip text, in pixels. |
bottom |
Distance between bottom border and bottom of tip text, in pixels. |
right |
Distance between right border and right end of tip text, in pixels. |
Remarks
This member function implements the behavior of the Win32 message TTM_GETMARGIN
, as described in the Windows SDK.
CToolTipCtrl::GetMaxTipWidth
Retrieves the maximum width for a tooltip window.
int GetMaxTipWidth() const;
Return Value
The maximum width for a tooltip window.
Remarks
This member function implements the behavior of the Win32 message TTM_GETMAXTIPWIDTH
, as described in the Windows SDK.
CToolTipCtrl::GetText
Retrieves the text that a tooltip control maintains for a tool.
void GetText(
CString& str,
CWnd* pWnd,
UINT_PTR nIDTool = 0) const;
Parameters
str
Reference to a CString
object that receives the tool's text.
pWnd
Pointer to the window that contains the tool.
nIDTool
ID of the tool.
Remarks
The pWnd
and nIDTool
parameters identify the tool. If that tool has been previously registered with the tooltip control through a previous call to CToolTipCtrl::AddTool
, the object referenced by the str
parameter is assigned the tool's text.
CToolTipCtrl::GetTipBkColor
Retrieves the background color in a tooltip window.
COLORREF GetTipBkColor() const;
Return Value
A COLORREF
value that represents the background color.
Remarks
This member function implements the behavior of the Win32 message TTM_GETTIPBKCOLOR
, as described in the Windows SDK.
CToolTipCtrl::GetTipTextColor
Retrieves the text color in a tooltip window.
COLORREF GetTipTextColor() const;
Return Value
A COLORREF
value that represents the text color.
Remarks
This member function implements the behavior of the Win32 message TTM_GETTIPTEXTCOLOR
, as described in the Windows SDK.
CToolTipCtrl::GetTitle
Retrieves the title of the current tooltip control.
void GetTitle(PTTGETTITLE pttgt) const;
Parameters
pttgt
[out] Pointer to a TTGETTITLE
structure that contains information about the tooltip control. When this method returns, the pszTitle
member of the TTGETTITLE
structure points to the text of the title.
Remarks
This method sends the TTM_GETTITLE
message, which is described in the Windows SDK.
CToolTipCtrl::GetToolCount
Retrieves a count of the tools registered with the tooltip control.
int GetToolCount() const;
Return Value
A count of tools registered with the tooltip control.
CToolTipCtrl::GetToolInfo
Retrieves the information that a tooltip control maintains about a tool.
BOOL GetToolInfo(
CToolInfo& ToolInfo,
CWnd* pWnd,
UINT_PTR nIDTool = 0) const;
Parameters
ToolInfo
Reference to a TOOLINFO
object that receives the tool's text.
pWnd
Pointer to the window that contains the tool.
nIDTool
ID of the tool.
Return Value
Nonzero if successful; otherwise 0.
Remarks
The hwnd
and uId
members of the TOOLINFO
structure referenced by CToolInfo
identify the tool. If that tool has been registered with the tooltip control through a previous call to AddTool
, the TOOLINFO
structure is filled with information about the tool.
CToolTipCtrl::HitTest
Tests a point to determine whether it is within the bounding rectangle of the given tool and, if so, retrieve information about the tool.
BOOL HitTest(
CWnd* pWnd,
CPoint pt,
LPTOOLINFO lpToolInfo) const;
Parameters
pWnd
Pointer to the window that contains the tool.
pt
Pointer to a CPoint
object containing the coordinates of the point to be tested.
lpToolInfo
Pointer to TOOLINFO
structure that contains information about the tool.
Return Value
Nonzero if the point specified by the hit-test information is within the tool's bounding rectangle; otherwise 0.
Remarks
If this function returns a nonzero value, the structure pointed to by lpToolInfo
is filled with information on the tool within whose rectangle the point lies.
The TTHITTESTINFO
structure is defined as follows:
typedef struct _TT_HITTESTINFO { // tthti
HWND hwnd; // handle of tool or window with tool
POINT pt; // client coordinates of point to test
TOOLINFO ti; // receives information about the tool
} TTHITTESTINFO, FAR * LPHITTESTINFO;
hwnd
Specifies the tool's handle.
pt
Specifies the coordinates of a point if the point is in the tool's bounding rectangle.
ti
Information about the tool. For more information about the
TOOLINFO
structure, seeCToolTipCtrl::GetToolInfo
.
CToolTipCtrl::Pop
Removes a displayed tooltip window from the view.
void Pop();
Remarks
This member function implements the behavior of the Win32 message TTM_POP
, as described in the Windows SDK.
CToolTipCtrl::Popup
Causes the current tooltip control to display at the coordinates of the last mouse message.
void Popup();
Remarks
This method sends the TTM_POPUP
message, which is described in the Windows SDK.
Example
The following code example displays a tooltip window.
{
// Display the most recent tooltip.
CToolBarCtrl &m_toolBarCtrl = m_wndToolBar.GetToolBarCtrl();
CToolTipCtrl *m_toolTip = m_toolBarCtrl.GetToolTips();
m_toolTip->Popup();
}
CToolTipCtrl::RelayEvent
Passes a mouse message to a tooltip control for processing.
void RelayEvent(LPMSG lpMsg);
Parameters
lpMsg
Pointer to a MSG
structure that contains the message to relay.
Remarks
A tooltip control processes only the following messages, which are sent to it by RelayEvent
:
WM_LBUTTONDOWN |
WM_MOUSEMOVE |
---|---|
WM_LBUTTONUP |
WM_RBUTTONDOWN |
WM_MBUTTONDOWN |
WM_RBUTTONUP |
WM_MBUTTONUP |
Example
See the example for CPropertySheet::GetTabControl
.
CToolTipCtrl::SetDelayTime
Sets the delay time for a tooltip control.
void SetDelayTime(UINT nDelay);
void SetDelayTime(
DWORD dwDuration,
int iTime);
Parameters
nDelay
Specifies the new delay time, in milliseconds.
dwDuration
Flag that specifies which duration value will be retrieved. See CToolTipCtrl::GetDelayTime
for a description of the valid values.
iTime
The specified delay time, in milliseconds.
Remarks
The delay time is the length of time the cursor must remain on a tool before the tooltip window appears. The default delay time is 500 milliseconds.
CToolTipCtrl::SetMargin
Sets the top, left, bottom, and right margins for a tooltip window.
void SetMargin(LPRECT lprc);
Parameters
lprc
Address of a RECT
structure that contains the margin information to be set. The members of the RECT
structure do not define a bounding rectangle. See CToolTipCtrl::GetMargin
for a description of the margin information.
Remarks
This member function implements the behavior of the Win32 message TTM_SETMARGIN
, as described in the Windows SDK.
CToolTipCtrl::SetMaxTipWidth
Sets the maximum width for a tooltip window.
int SetMaxTipWidth(int iWidth);
Parameters
iWidth
The maximum tooltip window width to be set.
Return Value
The previous maximum tip width.
Remarks
This member function implements the behavior of the Win32 message TTM_SETMAXTIPWIDTH
, as described in the Windows SDK.
CToolTipCtrl::SetTipBkColor
Sets the background color in a tooltip window.
void SetTipBkColor(COLORREF clr);
Parameters
clr
The new background color.
Remarks
This member function implements the behavior of the Win32 message TTM_SETTIPBKCOLOR
, as described in the Windows SDK.
CToolTipCtrl::SetTipTextColor
Sets the text color in a tooltip window.
void SetTipTextColor(COLORREF clr);
Parameters
clr
The new text color.
Remarks
This member function implements the behavior of the Win32 message TTM_SETTIPTEXTCOLOR
, as described in the Windows SDK.
CToolTipCtrl::SetTitle
Adds a standard icon and title string to a tooltip.
BOOL SetTitle(
UINT uIcon,
LPCTSTR lpstrTitle);
Parameters
uIcon
See icon
in TTM_SETTITLE
in the Windows SDK.
lpstrTitle
Pointer to the title string.
Return Value
Nonzero if successful; otherwise 0.
Remarks
This member function implements the behavior of the Win32 message TTM_SETTITLE
, as described in the Windows SDK.
CToolTipCtrl::SetToolInfo
Sets the information that a tooltip maintains for a tool.
void SetToolInfo(LPTOOLINFO lpToolInfo);
Parameters
lpToolInfo
A pointer to a TOOLINFO
structure that specifies the information to set.
CToolTipCtrl::SetToolRect
Sets a new bounding rectangle for a tool.
void SetToolRect(
CWnd* pWnd,
UINT_PTR nIDTool,
LPCRECT lpRect);
Parameters
pWnd
Pointer to the window that contains the tool.
nIDTool
ID of the tool.
lpRect
Pointer to a RECT
structure specifying the new bounding rectangle.
CToolTipCtrl::SetWindowTheme
Sets the visual style of the tooltip window.
HRESULT SetWindowTheme(LPCWSTR pszSubAppName);
Parameters
pszSubAppName
A pointer to a Unicode string that contains the visual style to set.
Return Value
The return value is not used.
Remarks
This member function emulates the functionality of the TTM_SETWINDOWTHEME
message, as described in the Windows SDK.
CToolTipCtrl::Update
Forces the current tool to be redrawn.
void Update();
CToolTipCtrl::UpdateTipText
Updates the tooltip text for this control's tools.
void UpdateTipText(
LPCTSTR lpszText,
CWnd* pWnd,
UINT_PTR nIDTool = 0);
void UpdateTipText(
UINT nIDText,
CWnd* pWnd,
UINT_PTR nIDTool = 0);
Parameters
lpszText
Pointer to the text for the tool.
pWnd
Pointer to the window that contains the tool.
nIDTool
ID of the tool.
nIDText
ID of the string resource that contains the text for the tool.