Выбор между диалоговыми и SDI проектами - PullRequest
4 голосов
/ 19 марта 2009

Я новичок в MFC, не совсем новичок, но хотел спросить экспертов на этом форуме, почему один проект предпочтительнее другого. Я надеюсь, что это не глупый вопрос, так как я относительно новичок в MFC.

Большое спасибо

Ответы [ 3 ]

9 голосов
/ 19 марта 2009

Выбор зависит от того, какой шаблон подходит вашему приложению:

Интерфейс единого документа (SDI) - если вашему приложению необходимо работать только с одним документом или объектом данных или набором данных за один раз

Пример: notepad.exe


Многодокументный интерфейс (MDI) - если вашему приложению необходимо одновременно работать с несколькими документами, объектами данных или наборами данных

Пример: Visual Studio


На основе диалога - для всего остального.

Пример: калькулятор


Независимо от того, что вы выбрали, у вас все равно останутся те же функциональные возможности, которые вы можете получить, и вы можете настроить их любым способом. Таким образом, вы не ограничиваете себя тем, с чего начинаете.

Все варианты поставляются с CWinApp, который является базовым классом, для которого вы получаете свои приложения MFC.

С помощью диалогового приложения вы также начинаете с CDialog . С приложением SDI вы также начинаете с CMainFrame, CDocument и CView.

2 голосов
/ 19 марта 2009

Если вы выбираете проект SDI, вы получаете целую инфраструктуру Model-View-Controller. Вы получаете класс документа (унаследованный от CDocument), который в идеале должен содержать все данные, и класс представления (унаследованный от CView) для отображения. Вам предоставляется хостинг-фрейм с уже прикрепленным меню, и есть функции, которые вы можете переопределить, чтобы сохранить и загрузить в файл.

Если у вас есть диалоговое приложение, вы получите одно диалоговое окно. Вот и все. Конечно, этот диалог может порождать других, но приложение по сути состоит из диалога.

Если вы разрабатываете небольшое приложение, которое выполняет только одну задачу, подходит диалоговое приложение, поскольку вам не нужны служебные данные.

Если вы разрабатываете приложение, в котором пользователь будет загружать, редактировать и сохранять данные, тогда путь SDI будет более подходящим.

Ответив на ваш вопрос, я вежливо спросил бы, была ли веская причина, по которой вы выбираете MFC вместо Windows Forms. Я считаю, что MFC была отличной технологией для своего времени, но пакет Visual Studio предлагает более продвинутые инструменты (если вы готовы пойти по пути .NET).

1 голос
/ 20 марта 2009

Если «документ» является правильной метафорой для вашего приложения, используйте SDI или MDI. (Одновременно можно открыть только один документ, несколько, если их больше одного.) Если задуматься, метафора документа действительно не подходит для большинства приложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...