【已解决】DuiLib tooltip闪烁

博主在使用DuiLib库时遇到tooltip闪烁的问题,通过对比DuiLib_Ultimate,找到了导致问题的复杂逻辑,并进行了修改,成功解决了tooltip跟随鼠标时的闪烁现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我是在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不再闪烁,且会跟着鼠标自动移动。

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值