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






4.51/5 (28投票s)
2002年6月11日

205286

7329
本文介绍了如何在屏幕上的任何位置显示工具提示。
引言
本文档展示了如何在屏幕的任何位置显示工具提示。
要创建一个工具提示,需要创建一个类为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日 - 更新了源代码