2011-10-11 64 views
1

我有一个混淆,MSWord是一个MDI或SDI应用程序。看看应用程序,我确实认为这是一个SDI应用程序,但有些人坚信“它”是MDI的一个例子。在Windows中使用Taskmanager后,“应用程序”选项卡列出当前打开的所有文档实例。但是,流程选项卡中只有一个流程。MS Word是一个MDI或SDI

由于所有的文件都有相同的过程,这让我觉得它是一个MDI。但同时,选项卡列出了所有打开的文档,使其成为一个SDI。你们怎么看待这个问题?请给出您宝贵和详细的答案。

+1

这似乎并非是一个编程问题。 –

+0

MDI/SDI与流程几乎完全没有关系。它与如何显示多个窗口有关。无论哪种方式,这似乎都不是一个编程问题,所以我投票迁移它。 –

回答

0


我碰到这方面一些更多的信息,从Chris Ryan这我分享这里:


这取决于你的意思是什么MDI。

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

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

即使Word和Excel的旧版本有主框架内的子窗口,在技术上不MDI。他们看起来像,但他们没有使用MDICLIENT。 MS使用了一个名为软件对话管理器的专有窗口库。使用了SDM,因此可以在多个平台上使用常用的应用程序代码库:Windows,OS/2,& Mac。他们只需重新编译该平台并链接特定于平台的SDM库。

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

6

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

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

+0

如果我做**显示任务栏中的所有文档**所有文档将分开,否则它们将成为同一父窗口的一部分。我同意。 但是混淆的是 **(1)**打开同样的文档可以从SDI切换到MDI并且副作用 **(2)**如果所有文档具有相同的PID,它是如何SDI的?我相信SDI,每个窗口都是一个过程。 – Abhinav

+3

SDI不要求每个窗口都是自己的过程。 –

+0

@RaymondChen,请分享您对Chris的信息fiven的看法 – Abhinav

1

老实说,我不知道这部分我自己,直到我测试:

在Windows中使用任务管理器后,应用程序选项卡列表中的所有文件的所有实例当前打开的。但是,“进程”选项卡中只有一个进程。

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

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

+0

是的,这让我也想到了MDI应用程序。然而,他们通过取消勾选“显示所有...”来测量“转向SDI” – Abhinav

+0

有一些有趣的信息由Chris给出 – Abhinav