关于窗口焦点的有关问题

关于窗口焦点的问题
我的程序主对话框中有三个继承CWnd的窗口,其中窗口A是主工作区域。。
我想在窗口A中截获键盘VK_LEFT、VK_RIGHT、VK_UP、VK_DOWN的消息然后进行处理。
却发现这四个键没有截获到,我按这四个键的时候,窗口的焦点会在其它两个窗口上。
我想这是导致没有截获到的原因吧,但是按这四个键,怎么焦点转移了呢。。
想不明白啊。程序中没有这样的处理啊。。。
这是怎么回事啊。。。

------解决方案--------------------
这是因为对话框本身响应这几个键用来改变对话框上子窗口的焦点的!!
对话框上响应键盘按键消息,重载
BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)
{
if( pMsg-> message> =WM_KEYDOWN && pMsg-> message <=WM_KEYUP)
{
this-> SendMessage(pMsg-> message,pMsg-> wParam,pMsg-> lParam);
return TRUE;
}
else
return CDialog::PreTranslateMessage(pMsg);
}
这样就可以在对话框上重载WM_KEYDOWN和WM_KEYUP来编写代码了。

------解决方案--------------------
这是系统默认的命令操作,你可以在OnSysCommand屏蔽掉上述消息。