当我鼠标移到控件上时能够显示tips ,但我吧鼠标移开放在其他空白处还显示这个tips 。why?

解决方案 »

  1.   

    CToolTipCtrl m_tooltip;初始化函数里边添加
    m_tooltip.SetDelayTime(150); PreTranslateMessage(MSG* pMsg)函数里添加:if(m_tooltip.m_hWnd!=NULL)  
       m_tooltip.RelayEvent(pMsg);
      

  2.   

    也许你没判断好响应 提示框的条件吧,
    处理一下OnMouseMove(UINT nFlags, CPoint point) 
    按控件不同分情况讨论,试试看。
      

  3.   

    他只有在相应的范围内才会产生提示   检查一下代码 看看是不是空白处时也响应了消息。用TRACE看看坐标的情况 多调试一下 祝你好运
      

  4.   


    PreTranslateMessage(MSG* pMsg)函数里添加: if(m_tooltip.m_hWnd!=NULL)  
      m_tooltip.RelayEvent(pMsg); LZ白度一下 吧 那里有很多例子。
      

  5.   

    你到底是用MFC写的,还是用win sdk去写的代码啊?你出现的情况我觉得是TOOLINFO中的hwnd没有写对,也就是说Tooltip绑定到了那个窗口。你会不会绑定到了desktop.
      

  6.   

    这是在onmousemove里面实现的
     判断point是不是在所设定的矩形区域,是的话 就Updatetiptext();
     不是的不做动作。如果我在不是里面也updatetiptext(“”,this)的话,可以达到目的,但这时tips会闪烁。设置delay也没有作用。大致如下
     for(i=0,i< ;i++)
    {
     if(rect[i].ptinrect(point) //rect是保存的矩形区域;
     {
          Updatetiptext(str,this)
     }
      else
      {
           updatetiptext(“”,this);
       }
    }
      

  7.   

    这是在onmousemove里面实现的 
    判断point是不是在所设定的矩形区域,是的话 就Updatetiptext(); 
     
    大致如下 
    for(i=0,i < ;i++) 

    if(rect[i].ptinrect(point) //rect是保存的矩形区域; 

          Updatetiptext(str,this) 

      else 
      { 
          updatetiptext(“”,this); 
      } 
    }
    在PreTranslateMessage也有添加if(m_tooltip.m_hWnd!=NULL)  
    m_tooltip.RelayEvent(pMsg);不知道为什么离开区域还能显示上一次的提示消息
      

  8.   

    .h 中 
    CToolTipCtrl m_tooltip;
    CEdit m_edit;初始化里
    m_tooltip.Create(this);
    m_tooltip.AddTool(&m_edit,"格式:XX-XX-X");添加虚函数
    BOOL CDlg1::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if(pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_RETURN)
    return TRUE;

    m_tooltip.RelayEvent(pMsg);
    return CDialog::PreTranslateMessage(pMsg);
    }OVER
      

  9.   

    这里要根据鼠标点击的区域显示不同的提示。
    譬如list中有很多行,每行都有不同的提示。