【问题标题】:CToolTipCtrl with TTF_TRACK Flag won't disappear, SetDelayTime doesn't work?带有TTF_TRACK标志的CToolTipCtrl不会消失,SetDelayTime不起作用?
【发布时间】:2013-06-12 10:23:45
【问题描述】:

我发现如果将TTF_TRACK标志设置为CTooltipCtrl,SetDelayTime不再起作用,所以工具提示不会自动消失。我想在指定控件下方显示工具提示,并希望它在几秒钟后消失(时间可以用 SetDelayTime 设置)。 有人可以帮帮我吗?

这是我构建工具提示的步骤:

1. Add member variable
   CToolTipCtrl m_tooltip;
2. override PreTranslateMessage
   BOOL CPF_GetSetNameDlg::PreTranslateMessage( MSG* pMsg )
{
    switch (pMsg->message)
    {
    case WM_KEYDOWN:
    case WM_SYSKEYDOWN:
    case WM_LBUTTONDOWN:
    case WM_RBUTTONDOWN:
    case WM_MBUTTONDOWN:
    case WM_LBUTTONUP:
    case WM_RBUTTONUP:
    case WM_MBUTTONUP:
    case WM_MOUSEMOVE:
        m_tooltip.RelayEvent(pMsg);
        break;
    }

    return CDialog::PreTranslateMessage(pMsg);
}
3. OnInitialDialog
   BOOL CPF_GetSetNameDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    //tooltip
    EnableToolTips();
    m_tooltip.Create(this , WS_POPUP | TTS_NOPREFIX | TTS_BALLOON);

    m_tooltip.SetDelayTime(TTDT_INITIAL, 0);
    m_tooltip.SetDelayTime(TTDT_AUTOPOP, 30000);
    m_tooltip.SetDelayTime(TTDT_RESHOW, 30000);
    m_tooltip.AddTool(GetDlgItem(IDC_SETNAME), _T(""));
    m_tooltip.SetMaxTipWidth(600); 
}
4. Control to show tool tip
      if(bShow)
{
    m_tooltip.UpdateTipText(_T("Hello, money~"), pWnd);
    CToolInfo       sTinfo;
    m_tooltip.GetToolInfo(sTinfo, pWnd);
    sTinfo.uFlags = TTF_TRACK;
    m_tooltip.SetToolInfo(&sTinfo);

    CRect rect;
    pWnd->GetWindowRect(rect);
    m_tooltip.SendMessage(TTM_TRACKPOSITION, 0, (LPARAM)MAKELONG(rect.left, rect.bottom));
    m_tooltip.SendMessage(TTM_TRACKACTIVATE, TRUE, (LPARAM)&sTinfo );
}

【问题讨论】:

    标签: windows visual-studio-2010 winapi user-interface mfc


    【解决方案1】:

    如果您使用跟踪工具提示,则您有责任手动显示和隐藏工具提示。工具提示计时器(如“autopop”)被忽略。因此,您需要创建自己的计时器并在触发时自行隐藏工具提示。

    【讨论】:

      猜你喜欢
      • 2022-08-13
      • 2021-07-24
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      • 2015-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多