如何实施多行工具提示

多行工具提示允许在多行上显示文本。

版本 4.70 及更高版本的通用控件支持这些控件。 应用程序通过发送 TTM_SETMAXTIPWIDTH 消息来创建多行工具提示,从而指定显示矩形的宽度。 超过此宽度的文字会换行到下一行,而不是扩大显示区域。 根据需要增加矩形高度,以容纳额外的线条。 工具提示控件会自动换行,也可以使用回车符/换行符组合 \r\n 在特定位置强制换行。

显示结果如下图所示。

screen shot of a dialog box with a tooltip that contains text arranged like a multi-line paragraph

注意

NMTTDISPINFO 结构的 szText 成员指定的文本缓冲区只能容纳 80 个字符。 如果需要使用更长的字符串,请将 NMTTDISPINFOlpszText 成员指向包含所需文本的缓冲区。

 

需要了解的事项

技术

先决条件

  • C/C++
  • Windows 用户界面编程

说明

实现多行工具提示

以下代码片段是一个简单的 TTN_GETDISPINFO 通知处理程序示例。 它通过将显示矩形设置为 150 像素来启用多行工具提示。 在第一个单词后插入了一个手动换行符,以指明既可以使用硬换行符,也可以使用软换行符。

    case WM_NOTIFY:
    {
        switch (((LPNMHDR)lParam)->code)
        {
        case TTN_GETDISPINFO:
            LPNMTTDISPINFO pInfo = (LPNMTTDISPINFO)lParam;
            SendMessage(pInfo->hdr.hwndFrom, TTM_SETMAXTIPWIDTH, 0, 150);
            wcscpy_s(pInfo->szText, ARRAYSIZE(pInfo->szText), 
                L"This\nis a very long text string " \
                L"that must be broken into several lines.");
            break;
        }
        break;
    }

使用工具提示控件