【发布时间】:2008-09-30 12:10:37
【问题描述】:
我需要了解 windows main/mdi/child/dialogs 之间的区别......应该如何传播 win32 消息......为什么有些消息以一种类型而不是其他类型出现......
【问题讨论】:
我需要了解 windows main/mdi/child/dialogs 之间的区别......应该如何传播 win32 消息......为什么有些消息以一种类型而不是其他类型出现......
【问题讨论】:
在 MSDN 网站上有可用的参考信息here。如果您想要更多介绍或教程,那么 Charles Petzold 的书 Programming Windows 非常好。
【讨论】:
主窗口 应用程序的顶部窗口。它被标记为进程主窗口,并且可以通过调用具有适当权限的进程轻松访问此信息。
MDI(多文档界面)窗口 这通常位于应用程序主窗口中,并且包含一组 MDI 子窗口。这主要是一个与 Win32 API 集成的窗口类。我相信操作系统不会像任何其他窗口类一样对待它。这些正在消失,取而代之的是多个 SDI 窗口(Word 2007)。
儿童 这是任何其他窗口的子窗口。它的位置、可见性和大部分内容都取决于父窗口。孩子们向他们的父母发送通知。通知是一种特定类型的窗口消息。
对话框 Dialogs 根据 95% 的对话框的需要提供了简单的子创建和输入处理。 API 中的对话框函数允许您使用 PE 文件 (.exe) 中的已编译模板创建窗口及其子项。消息处理也略有不同,因为您主要处理来自孩子的通知。
与对话框的主要区别在于您使用的是模态对话框。创建调用将阻塞,直到用户关闭对话框。在某些情况下,这会使 UI 更新变得有些棘手。
【讨论】:
我不是 Windows 开发人员,但这是我的理解:
主窗口 - 您可以在任务栏中激活/查看的顶级容器。
对话框 - 小框锁定(如果模式)您的窗口,在任务栏中看不到。主要用于向用户显示消息。
mdi (Multiple Document Interface) - 不直接是一个窗口,而是一个用于存储子窗口的简单容器。每个子窗口都可以在此容器内最大化/最小化/关闭,但您不会在任务栏中找到任何这些。 http://en.wikipedia.org/wiki/Multiple_document_interface
【讨论】: