想使用Edit过滤掉一些字符,所以派生了类,响应WM_CHAR,对于不合法字符直接返回.
但我又同时希望当输了不合法的字符时能够弹出一个ToolTip来提示,用标准的CToolTipCtrl如何实现?

解决方案 »

  1.   

    过滤字符,使用 VS2008 sp1 最方便,CMFCMaskedEdit
    看图:
      

  2.   

    对于提示框,用    //提示框
         m_wndToolTip.Create(this);
        m_wndToolTip.Activate(FALSE);
        m_wndToolTip.AddTool(pWindowCaptionCtrl/* 这里自己改一下,窗口指针*/, _T("这里是个提示信息"));你可以在你初始化时关闭 Tooltip,等字符不合法再 m_wndToolTip.Activate(TRUE); 就行了
      

  3.   

    另外,2楼的方法不行,你这样的话,那就是说在ON_EDITCHANGEDL里做了.事实上没效果.
    我看Ctooltipctrl响应鼠标消息,
      

  4.   


    不是没效果,是你没用对。
    还要重载虚函数virtual BOOL PreTranslateMessage(MSG* pMsg);
    你在网上搜索一下 CToolTipCtrl 的用法。
      

  5.   


    BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)
    {
        m_wndToolTip.RelayEvent(pMsg);    return CDialog::PreTranslateMessage(pMsg);
    }
    善用搜索。
      

  6.   

    不好意思 DAVID兄,tootip怎么用我是知道的,只是按照我的需求的用法暂时没解决。