繁体   English   中英

MFC模态对话框的怪异行为

[英]Weird behaviour with MFC Modal Dialogs

我只是注意到程序中的所有“模态”对话框都有奇怪的行为,

该代码将停止dlg.DoModal()调用,但是它下面的窗口仍将处于活动状态并接受输入。 这发生在我所有的CDialog派生窗口(实际上是CBCGPDialog)和系统消息框,文件对话框等中。

我得到的唯一结论是,必须有一些处理窗口消息的消息泵,即使它不行。

这件事发生在别人身上吗? 以及如何解决的任何想法?

通过接受输入,我的意思是他们仍然会响应。

例如,如果我有一个“添加”按钮,则在显示对话框后打开“模态”对话框,我仍然可以单击同一按钮以显示另一个按钮。

编辑。

我发现了错误。

在LoadFrame(用于大型机)上传递的位掩码中存在一些错误。

我不知道巫婆位,但是其中之一会禁用一些机制,以使“对话”窗口正常工作

CDialog::DoModal做一些事情。 首先,它禁用对话框的父窗口,因此它将不再响应事件,然后对通过AfxGetMainWnd()获得的主窗口执行相同的操作。 它使用RunModalLoop()运行自己的消息泵。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM