我用向导建立一个FormView为基类的单文档,在其中放一个编辑框,当光标在编辑框中的时候,就不能响应键盘KeyDown()了

解决方案 »

  1.   

    你可以重载pretranslatemsg函数,在那里判断
      

  2.   

    我是初学者,不知道该怎么重载控件CEdit 的 pretranslatemessage()我的意思是:当焦点在Cedit 里,只要按下一个键后弹出一个对话框就行
      

  3.   

    BOOL CData2View::PreTranslateMessage(MSG* pMsg) 
    {    BOOL bHandleNow = FALSE;    switch (pMsg->message)
        {
        case WM_KEYDOWN:
            switch (pMsg->wParam)
            {
            case VK_UP:
            case VK_DOWN:

    MessageBox("slkf");
            case VK_LEFT:
            case VK_RIGHT:
                bHandleNow = TRUE;
                break;
            }
            if (bHandleNow)
                OnKeyDown(pMsg->wParam, LOWORD(pMsg 
                    ->lParam), HIWORD(pMsg->lParam));
            break;
        }
        return bHandleNow;    //MessageBox("key is down now!"); return CRecordView::PreTranslateMessage(pMsg);
    }
    放在这里很麻烦的,而且有几个控件的话就要加很多的条件判断。