MS Word — это MDI или SDI

#windows #visual-c #windows-7 #ms-word

#Windows #visual-c #windows-7 #ms-word

Вопрос:

У меня путаница в том, что MSWord является приложением MDI или SDI. Глядя на приложение, я действительно считаю, что это приложение SDI, но есть люди, которые твердо «верят», что это пример MDI. После использования Taskmanager в Windows на вкладке Приложения перечислены все экземпляры документов, открытых в данный момент. Однако на вкладке Процессы есть только один процесс.

Поскольку все документы имеют одинаковый процесс, я чувствую, что это MDI. Но в то же время на вкладке «Приложения» перечислены все открытые документы, которые заставляют меня думать, что это SDI. Что вы, люди, думаете об этом? Пожалуйста, дайте свои ценные и подробные ответы.

Комментарии:

1. Похоже, это не вопрос программирования.

2. MDI / SDI не имеет практически никакого отношения к процессам. Это связано с тем, как отображаются несколько окон. В любом случае, это, похоже, вообще не вопрос программирования, поэтому я проголосовал за его перенос.

Ответ №1:

Если вы снимите флажок Show all documents in the taskbar в настройках, Word будет классическим приложением MDI (даже Word 2010).

Если оставить флажок, это SDI-приложение с несколькими корневыми окнами.

Комментарии:

1. Если я покажу все документы на панели задач, все документы будут отдельными, иначе они будут частью одного и того же родительского окна. Я согласен. Но путаница заключается в том, что ** (1) ** что одни и те же документы при открытии могут быть переключены на MDI из SDI и наоборот ** (2) ** Если все документы имеют одинаковый PID, как это SDI? Я считаю, что для SDI каждое окно представляет собой процесс.

2. SDI не требует, чтобы каждое окно было отдельным процессом.

3. @RaymondChen, пожалуйста, поделитесь своими мыслями для info fiven от Chris

4. Сначала вам нужно определить, что означают MDI / SDI, прежде чем вы сможете обсудить, является ли Word единицей. Определение Райана, похоже, «использует класс MDICLIENT window», что является очень узким определением.

Ответ №2:

Согласно Microsoft, это приложение MDI: http://msdn.microsoft.com/en-us/library/aa263481 (v= против 60).aspx

В зависимости от ваших настроек и версии, это может быть MDI или SDI. Это MDI в более старых версиях, и если вы используете опцию «Показывать все документы на панели задач»; в противном случае это SDI.

Ответ №3:

Честно говоря, я сам не осознавал эту часть, пока не протестировал:

После использования Taskmanager в Windows на вкладке Приложения перечислены все экземпляры документов, открытых в данный момент. Однако на вкладке Процессы есть только один процесс.

Спасибо и 1 за сообщение. При дальнейшем изучении я нашел кое-что, что может пролить свет дальше. Я использую 2007, но, думаю, это применимо и к 2010 году. Я нажал на меню управления (маленькое меню, которое появляется при нажатии на значок в верхнем левом углу — раньше называлось меню управления, прежде чем Microsoft решила перерисовать свой интерфейс). Вы найдете кнопку «Параметры Word». Нажмите на него, в появившемся после этого диалоговом окне перейдите на вкладку «Дополнительно». Прокрутите вниз до раздела «Отображение». Установите флажок «Показывать все окна на панели задач», я думаю, он будет установлен. Снимите флажок. Вы увидите, что больше нет нескольких окон (соответствующих каждому документу). Кроме того, в диспетчере задач вы увидите только один экземпляр даже на вкладке Приложения.

При этом я твердо верю, что Word по-прежнему является MDI. Да, кстати, если вы хотите видеть каждый документ, открытый после изменения этих «Дополнительных» параметров, вы можете перейти в меню «Просмотр» и выбрать опцию «Просмотр рядом».

Комментарии:

1. да, это заставляет меня тоже думать о приложении MDI. Однако, тогда что они означают «переход к SDI», сняв флажок «Показать все …»

Ответ №4:

Я наткнулся на дополнительную информацию об этом от Криса Райана, которой я делюсь здесь:


Это зависит от того, что вы подразумеваете под MDI.

MS-Word имеет несколько документов и интерфейс, но он не соответствует классическому определению приложения MDI, поскольку он не использует класс MDICLIENT window для управления дочерними фреймами.

Пример 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 и Mac. Все, что им нужно было сделать, это перекомпилировать для этой платформы и связать библиотеку SDM для конкретной платформы.

В этой ссылке немного говорится о SDM, но не упоминается MDICLIENT
http://msdn.microsoft.com/en-us/library/windows/desktop/dd317997 (v= против 85).aspx

Комментарии:

1. MDI не имеет ничего общего с тем, как написано приложение, а более старый MS word — это определенно MDI. MDICLIENT — это просто способ реализации MDI … не единственный способ.