对话框|主/子/ mdi窗口之间有哪些区别?

时间:2020-03-06 14:55:09  来源:igfitidea点击:

我需要了解Windows main / mdi / child / dialogs之间的区别.... win32消息应如何传播...为什么某些消息以一种类型而不是其他类型存在...

解决方案

我不是Windows开发人员,但我了解以下内容:

我们可以在任务栏中激活/查看的主窗口顶层容器。

对话框中的小框锁定(如果是模态的)窗口,在任务栏中看不到。通常用于向用户显示消息。

mdi(多个文档接口)不直接是一个窗口,而是一个用于存储子窗口的简单容器。每个子窗口都可以在该容器内最大化/最小化/关闭,但是我们不会在任务栏中找到任何这些窗口。
http://en.wikipedia.org/wiki/Multiple_document_interface

在MSDN网站上有可用的参考信息。如果我们需要更多的介绍或者教程,那么Charles Petzold的《 Programming Windows》一书非常出色。

主视窗
应用程序的顶部窗口。它被标记为进程主窗口,并且可以通过以适当的权限调用进程来方便地访问此信息。

MDI(多个文档界面)窗口
通常,它在应用程序主窗口中,并且包含一组MDI子级。这主要是与Win32 API集成的窗口类。我相信操作系统不会像对待其他任何窗口类一样对待它。那些已经不再支持多个SDI窗口(Word 2007)。

孩子
这是任何其他窗口的子窗口。它的位置,可见性以及几乎所有内容都取决于父窗口。孩子们将通知发送给父母。通知是一种特定类型的窗口消息。

对话
对话框可根据95%的对话框需求轻松地创建和输入子项。 API中的对话框函数使我们可以使用PE文件(.exe)中的编译模板来创建窗口及其子级。邮件处理也略有不同,因为我们主要处理来自孩子的通知。

对话框的主要区别是使用模态对话框时。创建调用将一直阻塞,直到用户关闭对话框。在某些情况下,这会使UI更新有些棘手。