首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >意外的CDialog DoModal()行为

意外的CDialog DoModal()行为
EN

Stack Overflow用户
提问于 2019-07-31 04:04:38
回答 1查看 126关注 0票数 0

我正在调试一个显示格式化消息框的第三方库的奇怪问题。该库使用基于CDialog的类,并使用DoModal()方法运行消息框对话框。有时,消息来自使用主窗口句柄作为父窗口的通用子例程(类型1),有时来自另一个模式对话框(类型2)。

有时类型1调用是由模式对话框中的操作触发的,当这种情况发生时,在消息对话框解除后,原始对话框不再是模式对话框。除了带有系统默认消息框的格式化消息框外,不做任何更改,并且原始对话框如预期的那样保持模式。当进行Type2调用时,原始对话框始终保持模式,所以我正在努力确保这是我调用库函数的方式,但这看起来可能是CDialog本身的错误,所以我想我应该问问是否有人知道这一点。

我以前从未使用过这些类库(我是一个老C爱好者),但是看起来这个类库总是使用EndDialog()来终止模式消息框,并且我找不到任何“花哨的、低级的”窗口内容(除了消息格式)。很明显,我真的不知道我在问什么,所以如果有更好的地方来讨论这个问题,请把我送到那里。

另一方面,如果从CDialog和DoModal()派生的任何东西都能做到这一点,那么它似乎是类库中的一个错误,因为内置的模式对话框(如MessageBox)没有这种不必要的效果。我会分享这些库代码,但我不是原始作者,也没有权限,但只要您愿意对不熟悉C++代码结构的人有一些耐心,我愿意寻找一些东西。

EN

回答 1

Stack Overflow用户

发布于 2019-07-31 19:31:40

我不知道我的答案是否会对你有所帮助。

但是有一个对话框的属性- "System Modal",它使其成为System Modal Dialog。

如果将其设置为True,则对话框将成为系统模式对话框。

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

https://stackoverflow.com/questions/57279257

复制
相关文章

相似问题

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