[英]Weird behaviour with MFC Modal Dialogs
我只是注意到程序中的所有“模态”对话框都有奇怪的行为,
该代码将停止dlg.DoModal()调用,但是它下面的窗口仍将处于活动状态并接受输入。 这发生在我所有的CDialog派生窗口(实际上是CBCGPDialog)和系统消息框,文件对话框等中。
我得到的唯一结论是,必须有一些处理窗口消息的消息泵,即使它不行。
这件事发生在别人身上吗? 以及如何解决的任何想法?
通过接受输入,我的意思是他们仍然会响应。
例如,如果我有一个“添加”按钮,则在显示对话框后打开“模态”对话框,我仍然可以单击同一按钮以显示另一个按钮。
编辑。
我发现了错误。
在LoadFrame(用于大型机)上传递的位掩码中存在一些错误。
我不知道巫婆位,但是其中之一会禁用一些机制,以使“对话”窗口正常工作
CDialog::DoModal
做一些事情。 首先,它禁用对话框的父窗口,因此它将不再响应事件,然后对通过AfxGetMainWnd()
获得的主窗口执行相同的操作。 它使用RunModalLoop()
运行自己的消息泵。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.