【已解决】DuiLib tooltip闪烁

我是在GitHub上下载的代码

https://github.com/duilib/duilib

在本地用VS2017打开

 

顺手给ListDemo里的每行信息加了一个tooltip,

【已解决】DuiLib tooltip闪烁_第1张图片

 

 

实测结果发现tooltip会跟随鼠标,但是存在问题:鼠标悬停时tooltip闪烁

 

【已解决】DuiLib tooltip闪烁_第2张图片

 

 

这个又是DuiLib的坑么

 

有大神帮忙看下咋回事呢,如何修复此问题啊

 

 

对比了DuiLib_Ultimate,发现此处没有那么复杂的逻辑,最终修改如下:

                if( m_hwndTooltip == NULL ) {
                    m_hwndTooltip = ::CreateWindowEx(0, TOOLTIPS_CLASS, NULL, WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, m_hWndPaint, NULL, m_hInstance, NULL);
                    ::SendMessage(m_hwndTooltip, TTM_ADDTOOL, 0, (LPARAM) &m_ToolTip);
                    ::SendMessage(m_hwndTooltip,TTM_SETMAXTIPWIDTH,0, pHover->GetToolTipWidth());
                }
                if(!::IsWindowVisible(m_hwndTooltip))
                {
                    ::SendMessage(m_hwndTooltip, TTM_SETTOOLINFO, 0, (LPARAM)&m_ToolTip);
                    ::SendMessage(m_hwndTooltip, TTM_TRACKACTIVATE, TRUE, (LPARAM)&m_ToolTip);
                }

                ::SendMessage(m_hwndTooltip, TTM_TRACKPOSITION, 0, (LPARAM)(DWORD)MAKELONG(pt.x, pt.y));

tooltip不再闪烁,且会跟着鼠标自动移动。

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(C++,DuiLib,windows,DuiLib,tooltip,C++,闪烁)