我正在开发一个MDI应用程序,主文档在MDI框架中最大化。我创建了一个非模态对话框弹出窗口,用于在用户在主窗口中工作时向用户显示辅助信息。然而,当用户移动弹出窗口时,它会获得预期的焦点。当此窗口具有焦点,并且在大型机中发生生成AfxMessageBox的事件时,就会出现问题。我预计AfxMessageBox会以大型机为中心弹出。目前,它是以非模式对话框弹出窗口为中心弹出的,该窗口恰好在当时具有焦点。
有没有办法强制AfxMessageBox始终以大型机为中心弹出?或者至少强制它以调用它的窗口为中心弹出。例如,如果在我的非模式对话框中出现错误,我希望AfxMessageBox显示在该对话框的中心,因为很明显错误发生在那里。或者,如果我正在处理非模式对话框,而主机或文档中出现错误,那么尽管我当前正在处理子窗口,但我还是希望AfxMessageBox显示在视图/框架的中心。
我希望这已经足够清楚了。
发布于 2010-10-07 23:20:41
请改用CWnd::MessageBox()方法。
发布于 2010-10-08 01:11:27
继续使用AfxMessageBox,但覆盖CWinApp子类的DoMessageBox。在覆盖中,您可以使用::MessageBox()向用户显示消息框,甚至显示自定义对话框。这使您不必在源代码文件中替换对AfxMessageBox的调用。
发布于 2010-10-07 22:36:11
您是否可以使用第一个(父)参数等于空的标准::MessageBox。在这种情况下,桌面将被用作父桌面,因此它将在屏幕上居中。
https://stackoverflow.com/questions/3882582
复制相似问题