如何实施气球工具提示
气球工具提示与标准工具提示类似,但会以卡通风格的“气球”显示,其箭头指向该工具。 气球工具提示可以是单行或多行。 它们的创建和处理方式与标准工具提示基本相同。
箭头和矩形的默认位置如下图所示。 如果工具太靠近屏幕顶部,则工具提示就会出现在工具矩形的右下方。 如果工具太靠近屏幕右侧,则类似的原则也将适用,但工具提示会显示在工具矩形的左侧。
可以通过设置工具提示 TOOLINFO 结构的 uFlags 成员中的 TTF_CENTERTIP 标志来更改默认定位。 在这种情况下,箭头通常指向工具矩形下边缘的中心,而文本矩形显示在工具的正下方。 箭头连接到文本矩形的上边缘中央位置。 如果工具离屏幕底部太近,则文本矩形就会位于工具上方的中心位置,而箭头则连接到下边缘的中心。
下图显示了一个在工具上居中的工具提示。
如果要指定箭头指向的位置,请在工具提示 TOOLINFO 结构的 uFlags 成员中设置 TTF_TRACK 标志。 然后,通过发送 TTM_TRACKPOSITION 消息,以 lParam 值中的 x 坐标和 y 坐标来指定坐标。 如果还设置了 TTF_CENTERTIP,则箭头仍会指向 TTM_TRACKPOSITION 消息指定的位置。
需要了解的事项
技术
先决条件
- C/C++
- Windows 用户界面编程
说明
实现气球工具提示
以下示例代码展示了如何使用 TTS_BALLOON 工具提示控件样式来实现居中的气球工具提示。
hwndToolTips = CreateWindow(TOOLTIPS_CLASS, NULL,
WS_POPUP | TTS_NOPREFIX | TTS_BALLOON,
0, 0, 0, 0, NULL, NULL, g_hinst, NULL);
if (hwndTooltip)
{
TOOLINFO ti;
ti.cbSize = sizeof(ti);
ti.uFlags = TTF_TRANSPARENT | TTF_CENTERTIP;
ti.hwnd = hwnd;
ti.uId = 0;
ti.hinst = NULL;
ti.lpszText = LPSTR_TEXTCALLBACK;
GetClientRect(hwnd, &ti.rect);
SendMessage(hwndToolTips, TTM_ADDTOOL, 0, (LPARAM) &ti );
}
相关主题