thks

解决方案 »

  1.   

    好像有ctooltips这个类
    你查查看
    感觉这个类应该有这个功能
      

  2.   

    嘿嘿
    不好意思,没看明白你的问题
    好像不能
    实在没办法
    可能你就的自己画一个tip了
      

  3.   

    你说的是在普通CView里画的图吧!
    CToolTipCtrl m_ToolTip;
    CTestView::OnInitialUpdate() 
    {
    CView::OnInitialUpdate();

    m_ToolTip.Create(this,TTS_ALWAYSTIP);
    m_ToolTip.AddTool(this,"ToolTip");
    }void CTestView::OnMouseMove(UINT nFlags, CPoint point) 
    {
    CRgn rgn;
    rgn.CreateRectRgnIndirect(CRect m_rect);

    if(rgn.PtInRegion(point))
    {
    CString str;
    str.Format("CX %d,CY %d",point.x,point.y);//可以修改提示内容
    m_ToolTip.UpdateTipText(str,this);
    }
    CView::OnMouseMove(nFlags, point);
    }LRESULT CTestView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if(message== WM_MOUSEMOVE)
    {
    MSG msg;
    msg.hwnd = m_hWnd;
    msg.message = message;
    msg.wParam = wParam;
    msg.lParam = lParam; m_ToolTip.RelayEvent(&msg);
    }
    return CView::WindowProc(message, wParam, lParam);
    }
      

  4.   

    if(rgn.PtInRegion(point))
    {
    CString str;
    str.Format("CX %d,CY %d",point.x,point.y);//可以修改提示内容
    m_ToolTip.UpdateTipText(str,this);
    }
    这段代码是不是有问题,为什么鼠标一移动程序就出现异常?
      

  5.   

    没有啊,我测试过了,可以正常使用,现在我又加了一点代码。void CTestView::OnMouseMove(UINT nFlags, CPoint point) 
    {
    CRgn rgn;
    rgn.CreateRectRgnIndirect(m_rect);

    if(rgn.PtInRegion(point))
    {
    CString str;
    str.Format("CX %d,CY %d",point.x,point.y);//可以修改提示内容
    m_ToolTip.UpdateTipText(str,this);
    m_ToolTip.Activate(TRUE);//updated 
    }
    //updated 2004-2-20
    else  
    {
    m_ToolTip.Activate(FALSE);
    }
    //
    CView::OnMouseMove(nFlags, point);
    }