在MFC中如何实现这样得效果?就是当鼠标停在一个控件上时在鼠标旁边弹出一个提示窗口。

解决方案 »

  1.   

    重载控件的OnMouseHover,然后找个tip显示。
      

  2.   

    网上有第三方的类,可以去codeproject上找找....
      

  3.   

    这个吧
    http://www.codeproject.com/KB/miscctrl/xinfotip.aspx
      

  4.   

    WM_MOUSEHOVER和WM_MOUSELEAVE需要手动设置
    可参考http://blog.csdn.net/movayhust/archive/2009/08/29/4496744.aspx
      

  5.   

    BEGIN_MESSAGE_MAP(CFormviewTTView, CFormView)
    //{{AFX_MSG_MAP(CFormviewTTView)
    // NOTE - the ClassWizard will add and remove mapping macros here.
    //    DO NOT EDIT what you see in these blocks of generated code!
    //}}AFX_MSG_MAP
    // Standard printing commands
    ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
    ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
    ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
    ON_NOTIFY_EX(TTN_NEEDTEXT,0,OnToolTipNotify)
    END_MESSAGE_MAP()
    //
    BOOL CFormviewTTView::OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
    {
    TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
        UINT nID =pNMHDR->idFrom;
    // char txt[40];
    // idFrom is actually the HWND of the control=IDC_xxx
    if (pTTT->hdr.code==TTN_NEEDTEXT)
        {
    if (pTTT->uFlags & TTF_IDISHWND)
    {
    if(((CStatic*)GetDlgItem(IDC_TT))->m_hWnd==(HWND)nID)
    {
    pTTT->lpszText="Double click to edit the text!";
    }
    return TRUE;
    }
    }
    //
    return(FALSE);
    }//
    virtual BOOL OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );
    //}}AFX_VIRTUAL