【发布时间】:2014-05-14 10:47:46
【问题描述】:
通常我有一些按钮可以打开子窗口,第二次按下这个按钮应该关闭它。我用的是触摸屏。
问题是当我尝试按下关闭子窗口的按钮时,第一次没有按下,所以我需要再次点击。
为了解决这个问题,我试图在打开子窗口后将焦点返回到父窗口。
我注册OnShowWindow消息并在父窗口上调用SetFocus:
void CFlashGuidanceSteps::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
GetParent()->SetFocus();
}
调用函数时(我可以在调试器中看到),焦点不会返回到父窗口。
但是,它适用于 OnSetFocus 事件:
void CFlashGuidanceSteps::OnSetFocus(CWnd* pOldWnd)
{
CDialog::OnSetFocus(pOldWnd);
GetParent()->SetFocus();
}
为什么OnShowWindow 事件没有保留焦点?
【问题讨论】:
标签: c++ windows winapi mfc focus