为什么MFC中的模态对话框实际上是内部无模式的?

时间:2012-09-06 09:32:19

标签: c++ visual-c++ mfc

在阅读本文后,我的问题出现了这个问题:http://www.codeproject.com/Articles/3911/The-singular-non-modality-of-MFC-modal-dialogs。他提到MFC中的模态对话框不是严格模态的,而是作为一个无模式对话框(内部)实现,带有花里胡哨,使其表现为模态。

具体来说,他说:

  

MFC命令路由机制使用消息映射的组合   和虚函数来实现它的功能和真正的模态对话   将完全破坏这种机制,因为那时模态消息循环   被控制在MFC命令路由机构的范围之外

有人能澄清这个说法吗?如果他们试图实现一个真正的模态对话框会出现问题的一个例子可以大大清楚。

1 个答案:

答案 0 :(得分:2)

模态对话框会停止消息循环,但仍必须有消息循环来处理对话框的事件。因此,模态对话框只是一个带有内部消息循环的非模态对话框。