想屏蔽掉CEdit控键的鼠标右键菜单,通过重载OnRButtonDown()做到了,但是却没办法屏蔽键盘的鼠标菜单键,郁闷阿!请各位高人指点!

解决方案 »

  1.   

    重载PreTranslateMessage:
    BOOL CMyEdit::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if( pMsg->message == WM_RBUTTONDOWN )
    {
    MessageBox("");
    return TRUE;
    }
    return CEdit::PreTranslateMessage(pMsg);
    }
      

  2.   

    我是这么做的:
    -------------------------------------------------------------------------------------
    BOOL CEditPro::PreTranslateMessage(MSG* pMsg) 
    {
        if (pMsg->message == WM_KEYDOWN)
            if (pMsg->wParam < 0x30 || pMsg->wParam > 0x39)
                if (pMsg->wParam < VK_NUMPAD0 || pMsg->wParam > VK_NUMPAD9)
                    if (pMsg->wParam != VK_BACK)
                        return TRUE;

    return CEdit::PreTranslateMessage(pMsg);
    }void CEditPro::OnRButtonDown(UINT nFlags, CPoint point) 
    {
    SetFocus();
    }
    ------------------------------------------------------------------------------------
    只限定响应键盘的数字键和退格键,但是就没办法屏蔽键盘上的鼠标菜单键。
    截获WM_RBUTTONDOWN这个消息也不行,他只是鼠标点击发出的消息,键盘的不会响应的。
    请各位再给想想办法,谢谢!
      

  3.   

    重载WM_CONTEXTMENU就可以了
    void CMyEdit::OnContextMenu(CWnd* pWnd, CPoint point) 
    {
    // TODO: Add your message handler code here
    // CEdit::OnContextMenu(pWnd, point);
    }