TTM_ADJUSTRECT消息

从工具提示控件的窗口矩形或显示指定文本显示矩形所需的工具提示窗口矩形中计算其文本显示矩形。

参数

wParam

指定要执行的操作的值。 如果 为 TRUE,则 lParam 用于指定文本显示矩形,并接收相应的窗口矩形。 如果 为 FALSE,则 lParam 用于指定窗口矩形,并接收相应的文本显示矩形。

lParam

用于保存工具提示窗口矩形或文本显示矩形的 RECT 结构。

返回值

如果成功调整矩形,则返回一个非零值;如果发生错误,则返回零。

备注

如果要使用工具提示控件显示通常被截断的字符串的全文,则此消息特别有用。 它通常用于 listview 和 treeview 控件。 通常发送此消息以响应 TTN_SHOW 通知代码,以便正确定位工具提示控件。

工具提示窗口矩形比绑定工具提示字符串的文本显示矩形稍大一些。 窗口原点也从文本显示矩形的原点向上和向左偏移。 若要定位文本显示矩形,必须计算相应的窗口矩形,并使用该矩形来定位工具提示。 TTM_ADJUSTRECT 为你处理此计算。

如果将 wParam 设置为 TRUETTM_ADJUSTRECT 采用所需工具提示文本显示矩形的大小和位置,并传回在指定位置显示文本所需的工具提示窗口的大小和位置。 如果将 wParam 设置为 FALSE,则可以指定工具提示窗口矩形, TTM_ADJUSTRECT 将返回其文本矩形的大小和位置。

以下代码片段演示了如何使用 TTM_ADJUSTRECT 消息定位工具提示控件,以显示控件字符串的全文,以代替截断的字符串。 应用程序定义的 GetMyItemRect 函数返回在截断的字符串上直接显示工具提示文本所需的文本矩形。 如何实现此函数的详细信息将取决于特定控件。 TTM_ADJUSTRECT 用于将此文本矩形发送到工具提示控件。 它返回一个适当大小和定位的窗口矩形,然后用于定位工具提示窗口。

case TTN_SHOW:

if (MyStringIsTruncated) {
    RECT rc;
    
    GetMyItemRect(&rc);
    SendMessage(hwndToolTip, TTM_ADJUSTRECT, TRUE, (LPARAM)&rc);
    SetWindowPos(hwndToolTip,
                 NULL,
                 rc.left, rc.top,
                 0, 0,
                 SWP_NOSIZE|SWP_NOZORDER|SWP_NOACTIVATE);
} 

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
标头
Commctrl.h