怎样屏蔽方向键导致的焦点移动,该如何解决
怎样屏蔽方向键导致的焦点移动
比如有个对话框,上面有10个按钮控件,按tab键或者方向键的话,焦点就会在这10个按钮之间循环移动……
我知道把按钮的tabstop属性设为false可以屏蔽tab键,但不知道怎样屏蔽方向键,也就是按方向键时不要让焦点在按钮上移动。
不能简单地在PreTranslateMessage中把方向键过滤掉,因为我还需要方向键完成别的功能。
求指教……
------解决方案--------------------
比如有个对话框,上面有10个按钮控件,按tab键或者方向键的话,焦点就会在这10个按钮之间循环移动……
我知道把按钮的tabstop属性设为false可以屏蔽tab键,但不知道怎样屏蔽方向键,也就是按方向键时不要让焦点在按钮上移动。
不能简单地在PreTranslateMessage中把方向键过滤掉,因为我还需要方向键完成别的功能。
求指教……
------解决方案--------------------
- C/C++ code
BOOL CXXDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if(WM_KEYDOWN == pMsg->message) { switch(pMsg->wParam) { case VK_LEFT: case VK_RIGHT: case VK_UP: case VK_DOWN: { TCHAR szClass[256] = {0}; ::GetClassName(pMsg->hwnd, szClass, 256); if(0 == _tcscmp(szClass, _T("Button"))) { return TRUE; } } break; default: break; } } return CDialog::PreTranslateMessage(pMsg); }