CToolTipCtrl控件窗口非激活状态下不显示

本文介绍了如何解决CToolTipCtrl控件在非激活状态下不显示的问题。通过在创建控件时添加TTS_ALWAYSTIP属性,并在MouseMove消息中调用RelayEvent方法,确保提示框在窗口无论是否激活都能正确显示。
摘要由CSDN通过智能技术生成

CToolTipCtrl控件在窗口非激活状态不显示

经过调查需要给CToolTipCtrl控件增加TTS_ALWAYSTIP属性

CToolTipCtrl使用示例:

1,声明CToolTipCtrl

CToolTipCtrl m_tooltip;

2,创建CToolTipCtrl同时设置属性

    m_tooltip.Create(m_hWnd);
    DWORD toolTipStyle = m_tooltip.GetWindowLong(GWL_STYLE);
    toolTipStyle |= TTS_ALWAYSTIP;
    m_tooltip.SetWindowLong(GWL_STYLE, toolTipStyle);
    m_tooltip.ModifyStyleEx(0, WS_EX_TRANSPARENT);
    m_tooltip.Activate(TRUE);

3,增加提示区域内容

    m_tooltip.AddTool(
        m_hWnd, /* 父窗口句柄 */
        text,   /* 提示内容 */
        rcTool, /* 提示区域 */
        nID     /* 提示工具编号 : 从1开始 */
    );

4,在MouseMove消息中增加

LRESULT OnMouseMove(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
    MSG msg;
    memset(&msg, 0, sizeof(msg));
    msg.hwnd = m_hWnd;
    msg.lParam = lParam;
    msg.message = uMsg;
    msg.time = 0;
    msg.wParam = wParam;
    m_tooltip.RelayEvent(&msg);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值