VC对话框怎么把焦点设置在一个按钮上

2025-03-01 17:23:39
推荐回答(3个)
回答1:

CTRL+D Taborder改为1,是有用的,只是不会有那个虚框。
按ENTER键也不是对这个按钮的操作,在按钮属性上设置为默认按钮(default button)就可以了。
另外注意一下按钮属性中:tab stop是不是选中状态,如果这个没选中肯定不行。

回答2:

设置焦点 以下语句添加在OnInitDialog()函数中
GetDlgItem(ID)->SetFocus(); ID 为控件ID
快捷键在 PreTranslateMessage(MSG* pMsg)函数中设定
至于按TAB 键没反应 检查控件属性设定时 Tab Stop 项是否选中 须选中.

回答3:

试试下面这段代码,设置或者取消焦点的,设置焦点时,不光需要发送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);
}
}