MFC对话框程序,有多个按钮,因为方向键要控制图片的运动,但是按方向键的时候,焦点会在几个按钮之间来回切换,怎么让方向键对按钮无效呢?
TabStop属性已经设为FALSE了,没有用
在按钮的BN_SETFOCUS事件里面把焦点设为另外一个控件 也没有用

解决方案 »

  1.   

    重载 PreTranslateMessage(MSG* pMsg)
    自己在里面过滤消息
      

  2.   

    如:BOOL TestDlg::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if(pMsg->message == WM_KEYDOWN){ switch(pMsg->wParam){
    case VK_UP:
    // move up
    return TRUE;
    break;
    case VK_DOWN:
    // move down
    return TRUE;
    break;
    case VK_LEFT:
    // move left
    return TRUE;
    break;
    case VK_RIGHT:
    // move right
    return TRUE;
    break;
    case VK_DELETE:
    OnBtnDeleteG();
    return TRUE;
    break;
    }

    return CDialog::PreTranslateMessage(pMsg);
    }
      

  3.   

    case VK_UP:
                // move up
                return TRUE;
                break;
            case VK_DOWN:
                // move down
                return TRUE;
                break;
            case VK_LEFT:
                // move left
                return TRUE;
                break;
            case VK_RIGHT:
                // move right
                return TRUE;
                break;
    --->
    修改一下:
    case VK_UP:
                // move up
            case VK_DOWN:
                // move down
            case VK_LEFT:
                // move left
            case VK_RIGHT:
                // move right
                return TRUE;