在CDialog中改变Tab键顺序可以使直接在向导中直接修改(静态创建),也可以在创建控件的时候指定其WS_TABSTOP属性,TAB顺序就是按照你创建的先后顺序来指定的;
但是在CWnd类中通过修改其WS_TABSTOP属性就不能实现了,还需要在PreTranslateMessage(MSG* pMsg) 响应其tab键然后设置SetFocus来实现:
BOOL CChildView::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if(pMsg->message == WM_LBUTTONDOWN)
{
TRACE(_T("WM_LBUTTONDOWN"));
}
if (pMsg-> message == WM_KEYDOWN)
{
if( pMsg-> wParam == VK_TAB)
{
CWnd* pWndNext = GetNextDlgTabItem(GetFocus());
if (pWndNext)
{
pWndNext-> SetFocus();
}
return TRUE;
}
else
{
return CWnd::PreTranslateMessage(pMsg);
}
}
else
{
return CWnd::PreTranslateMessage(pMsg);
}
}