VC对话框怎么把焦点设置在一个按钮上
对话框一共就3个控件,一个列表控件,一个静态文本,一个按钮,想把焦点默认设为按钮CTRL+DTaborder改为1,没用OnInitDialog():GetDlgItem...
对话框一共就3个控件,一个列表控件,一个静态文本,一个按钮,想把焦点默认设为按钮
CTRL+D Taborder改为1,没用
OnInitDialog():
GetDlgItem(IDC_Btn_Reset)->SetFocus();
return FALSE;
还是没用
按钮上没有获得焦点的虚线框,按ENTER键也不是对这个按钮的操作,而是关闭对话框
怎么回事呢,郁闷 展开
CTRL+D Taborder改为1,没用
OnInitDialog():
GetDlgItem(IDC_Btn_Reset)->SetFocus();
return FALSE;
还是没用
按钮上没有获得焦点的虚线框,按ENTER键也不是对这个按钮的操作,而是关闭对话框
怎么回事呢,郁闷 展开
3个回答
展开全部
CTRL+D Taborder改为1,是有用的,只是不会有那个虚框。
按ENTER键也不是对这个按钮的操作,在按钮属性上设置为默认按钮(default button)就可以了。
另外注意一下按钮属性中:tab stop是不是选中状态,如果这个没选中肯定不行。
按ENTER键也不是对这个按钮的操作,在按钮属性上设置为默认按钮(default button)就可以了。
另外注意一下按钮属性中:tab stop是不是选中状态,如果这个没选中肯定不行。
追问
那什么情况下会出现虚线框呢
追答
这个和风格相关啊,有些风格下有,有些没有。
关键不看这里,如果你允许了tab stop,那么程序运行后按tab键,就能看到当前焦点在哪里了。
展开全部
设置焦点 以下语句添加在OnInitDialog()函数中
GetDlgItem(ID)->SetFocus(); ID 为控件ID
快捷键在 PreTranslateMessage(MSG* pMsg)函数中设定
至于按TAB 键没反应 检查控件属性设定时 Tab Stop 项是否选中 须选中.
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);
}
}
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);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询