在关闭消息框后,焦点不会返回到View

时间:2013-04-19 16:40:06

标签: c++ mfc modal-dialog focus messagebox

在派生的CView类'方法中,我调用CWnd的MessageBox方法。这是一个停靠视图,而不是MDI子视图。从MessageBox返回后,焦点将转到Active MDI子级,而不是返回到停靠视图。

认为这是一个MFC行为“异常”,我尝试更改代码以使用Win32 :: MessageBox并将视图的GetSafeHwnd()传递给父HWND paraneter,并且视图STILL不会关注解雇MessageBox,但Active MDI子项获得焦点,就像MFC调用一样。

此外,我从视图中看到与基于CDialog的窗口类似的行为,而不仅仅是MessageBox的。

我通过从MessageBox返回后调用SetFocus()来做一个解决方法,这是有效的。但是,我不想以编程方式始终将焦点设置回我(在某些情况下,视图或其中一个孩子在对话框/消息框之前没有焦点,所以我实际上需要在对话框/消息框之前进行测试,然后只有在我调用DoModal / MessageBox之后才进行焦点恢复焦点。

这是MDI Windows行为错误吗?这不是一个错误,而是MDI应用程序的“所需功能”吗?难道我做错了什么?有人有任何想法或意见吗?

0 个答案:

没有答案