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

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.51/5 (28投票s)

2002年6月11日

viewsIcon

205286

downloadIcon

7329

本文介绍了如何在屏幕上的任何位置显示工具提示。

Sample ToolTip

引言

本文档展示了如何在屏幕的任何位置显示工具提示。

要创建一个工具提示,需要创建一个类为TOOLTIPS_CLASS的窗口,然后填充一个TOOLINFO结构体。

typedef struct tagTOOLINFO{
	UINT      cbSize; 
	UINT      uFlags; 
	HWND      hwnd; 
	UINT_PTR  uId; 
	RECT      rect; 
	HINSTANCE hinst; 
	LPTSTR    lpszText; 
    #if (_WIN32_IE >= 0x0300)
	LPARAM lParam;
    #endif
} TOOLINFO, NEAR *PTOOLINFO, FAR *LPTOOLINFO;

在这个结构体中,我们确定了两个对我们来说有趣的参数:uFlags lpszText

uFlags 应选择等于 TTF_TRACK,这使我们能够使用消息发送来选择工具提示的位置并控制其可见性。

lpszText - 是要显示的文本的任务。

现在,我们向系统发送消息,表示希望创建弹出的帮助,并将指向我们的 TOOLINFO 结构的引用传递给它。

SendMessage (hwndTT, TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) *ti);

然后,我们发送一个 TTM_TRACKPOSITION 消息,该消息设置工具提示的坐标。

SendMessage (hwndTT, TTM_TRACKPOSITION, 0, (LPARAM) (DWORD) MAKELONG (m_x, m_y));
其中 m_x m_y 是屏幕上的 x 和 y 坐标。

最后,我们发送消息以激活工具提示。

SendMessage (hwndTT, TTM_TRACKACTIVATE, true, (LPARAM) (LPTOOLINFO) *ti);
其中 true 值表示我们将显示工具提示。 如果我们指定 false,则工具提示将被隐藏。

历史

2002年9月1日 - 更新了源代码

© . All rights reserved.