MS Word是MDI或SDI

时间:2011-10-11 17:17:52

标签: windows visual-c++ windows-7 ms-word

我对MSWord是MDI或SDI应用程序感到困惑。看看应用程序,我确实认为它是一个SDI应用程序,但有些人强烈“相信”它是MDI的一个例子。在Windows中使用Taskmanager后,“应用程序”选项卡会列出当前打开的所有文档实例。但是,流程标签中只有一个流程。

由于所有文件都有相同的过程,所以我觉得它是一个MDI。但与此同时,应用程序标签列出了所有打开的文件,使其成为SDI。你们对此有何看法?请提供您宝贵而详细的答案。

4 个答案:

答案 0 :(得分:7)

如果在选项中取消选中Show all documents in the taskbar,则Word是一个经典的MDI应用程序(甚至是Word 2010)。

如果你选中它,它是一个带有多个根窗口的SDI应用程序。

答案 1 :(得分:1)

根据Microsoft的说法,它是一个MDI应用程序:http://msdn.microsoft.com/en-us/library/aa263481(v=vs.60).aspx

根据您的设置和版本,它可能是MDI或SDI。它是旧版本的MDI,如果您使用“在任务栏中显示所有文档”选项;否则,它是SDI。

答案 2 :(得分:1)

老实说,在我测试之前,我自己并没有意识到这一部分:

  

在Windows中使用Taskmanager后,“应用程序”选项卡会列出当前打开的所有文档的所有实例。但是,“进程”选项卡中只有一个进程。

感谢您和帖子上的+1。在进一步探索之后,我发现了一些可能进一步发展的东西。我正在使用2007年,但我想它也适用于2010年。我点击了控制菜单(当你点击左上角的图标时弹出的小菜单 - 曾经被称为控制菜单,在微软决定重绘其界面之前)。你会找到一个“Word选项”按钮。单击它,在此后弹出的对话框中,转到“高级”选项卡。向下滚动到“显示”部分。找到“在任务栏中显示所有窗口”复选框,我猜它会被检查。取消选中它。您将看到没有多个窗口(对应于每个文档)。此外,在任务管理器中,即使在“应用程序”选项卡中也只能看到一个实例。

有了这个,我坚信Word仍然是一个MDI。哦顺便说一句,如果您想在更改这些“高级”选项后查看每个文档,您可能需要转到“查看”菜单并选择“并排查看”选项。

答案 3 :(得分:-1)


我在Chris Ryan发现了一些关于此问题的更多信息,我在这里分享:


这取决于您对MDI的意思。

MS-Word确实有多个文档和一个界面,但它不符合MDI应用程序的经典定义,因为它不使用MDICLIENT窗口类来管理子帧。

有关MDICLIENT的示例,请参阅:
ftp://ftp.charlespetzold.com/ProgWin5/Chap19/MDIDemo/MDIDemo.c
ftp://ftp.charlespetzold.com/ProgWin5/Chap19/MDIDemo/Release/MDIDemo.exe

即使是在主框架内有子窗口的旧版Word和Excel,在技术上也不是MDI。他们看起来像,但他们没有使用MDICLIENT。 MS使用名为Software Dialog Manager的专有窗口库。使用SDM,因此可以在多个平台上使用通用的应用程序代码库:Windows,OS / 2和&苹果电脑。他们所要做的只是为该平台重新编译并链接一个特定于平台的SDM库。

这个链接谈了一些关于SDM的内容,但没有提到MDICLIENT
http://msdn.microsoft.com/en-us/library/windows/desktop/dd317997(v=vs.85).aspx