首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >某些安装中没有显示样式TTS_BALLOON的Windows工具提示

某些安装中没有显示样式TTS_BALLOON的Windows工具提示
EN

Stack Overflow用户
提问于 2010-12-16 09:56:01
回答 1查看 1.3K关注 0票数 0

我维护一个显示工具提示的Win32桌面应用程序。到目前为止,这在许多XP和Windows 7安装上运行得很好。

我们现在从一些客户那里得到报告,他们没有看到我们的工具提示。“查看矩形工具提示”(没有TTS_BALLOON属性)。但是用TTS_BALLOON创建的那些是不可见的。由客户报告发送的日志文件( CreateWindowEx返回有效的windows句柄)以及包含的坐标和字符串都是正确的。有关机器运行Windows,并定期更新。

有没有人遇到过类似的行为?

我们如何解决这个问题呢?

源代码:

代码语言:javascript
复制
    gHintInfo.hwnd = CreateWindowEx(NULL, TOOLTIPS_CLASS, NULL,
                            WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP | TTS_BALLOON, 
                            CW_USEDEFAULT, CW_USEDEFAULT,
                            CW_USEDEFAULT, CW_USEDEFAULT,
                            NULL, NULL, 
                            (HINSTANCE)xvt_vobj_get_attr(TASK_WIN, ATTR_WIN_INSTANCE),
                            NULL);

Trace(1, "\n### DrawHint %d, hwnd = %08x, Text =\n%s\n###\n\n", __LINE__, gHintInfo.hwnd, tx);

    if (gHintInfo.hwnd != NULL)
    {
        TOOLINFO ti;
        ti.cbSize = sizeof (ti);
        ti.uFlags = TTF_TRANSPARENT | TTF_ABSOLUTE;
        ti.hwnd = hwndParent;
        ti.uId = 0;
        ti.hinst = NULL;
        ti.lpszText = (char *) tx;
        GetClientRect (hwndParent, &ti.rect);

dbgrct(ti.rect);
dbgpnt(gHintInfo.LastHintLoc);

        SendMessage(gHintInfo.hwnd, TTM_TRACKPOSITION,0, MAKELONG(gHintInfo.LastHintLoc.v, gHintInfo.LastHintLoc.h));    
        SendMessage (gHintInfo.hwnd, TTM_ADDTOOL, 0, (long) &ti);
        SendMessage (gHintInfo.hwnd, TTM_SETDELAYTIME, TTDT_AUTOMATIC, -1);
        SendMessage (gHintInfo.hwnd, TTM_SETMAXTIPWIDTH, 0, 500);    
        SendMessage (gHintInfo.hwnd, TTM_TRACKACTIVATE, TRUE, (long) &ti);
    }

此代码在不播放工具提示的机器上创建的日志输出如下:

代码语言:javascript
复制
### DrawHint 474, hwnd = 00090112, Text =
Some text with 
multiple lines
###

ti.rect left = 0, top = 0, right = 1280, bottom = 978
gHintInfo.LastHintLoc h = 295, v = 539

(我们将ti.rect设置为整个屏幕的坐标,因为windows将工具提示调整为包含的文本。)

编辑:我们实际上向我们的软件添加了一个配置属性,它只会添加或删除TTS_BALLOON属性。这解决了有关机器上的问题。

EN

回答 1

Stack Overflow用户

发布于 2012-07-04 16:42:17

最好的解决方案可以找到这里

若要禁用工具提示气球,请将EnableBalloonTips设置为1

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4459429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档