首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何强制AfxMessageBox以大型机为中心,而不是当前具有焦点的任何子窗口

如何强制AfxMessageBox以大型机为中心,而不是当前具有焦点的任何子窗口
EN

Stack Overflow用户
提问于 2010-10-07 22:20:51
回答 3查看 1.5K关注 0票数 0

我正在开发一个MDI应用程序,主文档在MDI框架中最大化。我创建了一个非模态对话框弹出窗口,用于在用户在主窗口中工作时向用户显示辅助信息。然而,当用户移动弹出窗口时,它会获得预期的焦点。当此窗口具有焦点,并且在大型机中发生生成AfxMessageBox的事件时,就会出现问题。我预计AfxMessageBox会以大型机为中心弹出。目前,它是以非模式对话框弹出窗口为中心弹出的,该窗口恰好在当时具有焦点。

有没有办法强制AfxMessageBox始终以大型机为中心弹出?或者至少强制它以调用它的窗口为中心弹出。例如,如果在我的非模式对话框中出现错误,我希望AfxMessageBox显示在该对话框的中心,因为很明显错误发生在那里。或者,如果我正在处理非模式对话框,而主机或文档中出现错误,那么尽管我当前正在处理子窗口,但我还是希望AfxMessageBox显示在视图/框架的中心。

我希望这已经足够清楚了。

EN

回答 3

Stack Overflow用户

发布于 2010-10-07 23:20:41

请改用CWnd::MessageBox()方法。

票数 3
EN

Stack Overflow用户

发布于 2010-10-08 01:11:27

继续使用AfxMessageBox,但覆盖CWinApp子类的DoMessageBox。在覆盖中,您可以使用::MessageBox()向用户显示消息框,甚至显示自定义对话框。这使您不必在源代码文件中替换对AfxMessageBox的调用。

票数 3
EN

Stack Overflow用户

发布于 2010-10-07 22:36:11

您是否可以使用第一个(父)参数等于空的标准::MessageBox。在这种情况下,桌面将被用作父桌面,因此它将在屏幕上居中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3882582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档