我是在GitHub上下载的代码
https://github.com/duilib/duilib
在本地用VS2017打开
顺手给ListDemo里的每行信息加了一个tooltip,
实测结果发现tooltip会跟随鼠标,但是存在问题:鼠标悬停时tooltip闪烁
这个又是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不再闪烁,且会跟着鼠标自动移动。