BOOL CTestTryeDlg::PreTranslateMessage(MSG* pMsg) { if (pMsg->message == WM_KEYDOWN && // 拦截WM_KEYDOWN消息 ::GetFocus() == m_tree.GetSafeHwnd()) // 当前树控件要处于焦点中,不要影响其它控件方向键的使用 { if (pMsg->wParam == VK_LEFT || pMsg->wParam == VK_RIGHT|| pMsg->wParam == VK_UP || pMsg->wParam == VK_DOWN) { return TRUE; } } return CDialog::PreTranslateMessage(pMsg); }
最简单有效的方法在对话框虚函数中拦截WM_KEYDOWN消息即可。