设置TAB顺序的问题

来源:百度知道 编辑:UC知道 时间:2024/07/06 13:05:24
我知道是按Ctrl+D来设置,但是,如果有个控件是用代码动态生成的,视图里面看不见的,这要怎么设置TAB顺序啊?谢谢

可以通过重载父窗口的PreTranslateMessage函数实现:

BOOL CMyDialog::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN)
{
if (pMsg->wParam==VK_TAB)
{ GetFocus(); //先获得当前焦点的控件句柄,再根据当前的焦点所在(可以在这儿加个swich case语句),将焦点切换到指定的下一个控件。
::SetFocus(hwnd); //将焦点切换到指定的下一个控件。
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}