CTRL+D Taborder改为1,是有用的,只是不会有那个虚框。
按ENTER键也不是对这个按钮的操作,在按钮属性上设置为默认按钮(default button)就可以了。
另外注意一下按钮属性中:tab stop是不是选中状态,如果这个没选中肯定不行。
设置焦点 以下语句添加在OnInitDialog()函数中
GetDlgItem(ID)->SetFocus(); ID 为控件ID
快捷键在 PreTranslateMessage(MSG* pMsg)函数中设定
至于按TAB 键没反应 检查控件属性设定时 Tab Stop 项是否选中 须选中.
试试下面这段代码,设置或者取消焦点的,设置焦点时,不光需要发送WM_SETFOCUS还需要发送WM_ACTIVATE。
void SetFocus(BOOL bFocus = TRUE)
{
if(bFocus)
{
::PostMessage(m_hWnd,WM_SETFOCUS, (WPARAM)m_hWnd, 0);
::PostMessage(m_hWnd,WM_ACTIVATE, WA_ACTIVE, 0);
}
else
{
::PostMessage(m_hWnd,WM_KILLFOCUS, 0, 0);
}
}