Различия в программировании Windows Forms/MFC

В разделах, посвященных использованию пользовательского элемента управления Windows Form в MFC, описана поддержка MFC для Windows Forms. Если вы не знакомы с платформа .NET Framework или программированием MFC, в этом разделе содержатся общие сведения о различиях в программировании между этими двумя.

Windows Forms предназначен для создания приложений Microsoft Windows на платформа .NET Framework. Эта платформа предоставляет современный, объектно-ориентированный, расширяемый набор классов, позволяющий разрабатывать расширенные приложения на основе Windows. С помощью Windows Forms вы можете создать расширенное клиентское приложение, которое может получить доступ к широкому спектру источников данных и предоставить средства отображения данных и редактирования данных с помощью элементов управления Windows Forms.

Однако если вы привыкли к MFC, вы можете использовать для создания определенных типов приложений, которые еще не поддерживаются явным образом в Windows Forms. Приложения Windows Forms эквивалентны приложениям диалоговых окон MFC. Однако они не предоставляют инфраструктуру для непосредственной поддержки других типов приложений MFC, таких как сервер документов OLE или контейнер, документы ActiveX, поддержка документов и представлений для однодокументного интерфейса (SDI), многодокументного интерфейса (MDI) и нескольких интерфейсов верхнего уровня (MTI). Вы можете написать собственную логику для создания этих приложений.

Дополнительные сведения о приложениях Windows Forms см. в статье "Введение в Windows Forms".

Следующие функции представления MFC или документа и маршрутизации команд не имеют эквивалентов в Windows Forms:

  • Интеграция оболочки

    MFC обрабатывает команды динамического обмена данными (DDE) и аргументы командной строки, которые оболочка использует при щелчке правой кнопкой мыши документ и выбирает такие команды, как Open, Edit или Print. Windows Forms не имеет интеграции оболочки и не отвечает на команды оболочки.

  • Шаблоны документов

    В MFC шаблоны документов связывают представление, содержащееся в окне кадра (в режиме MDI, SDI или MTI), с открываемым документом. Windows Forms не имеет эквивалента шаблонам документов.

  • документы.

    MFC регистрирует типы файлов документов и обрабатывает тип документа при открытии документа из оболочки. Windows Forms не поддерживает документ.

  • Состояния документа

    MFC поддерживает грязное состояния для документа. Поэтому при закрытии приложения закройте последнее представление, содержащее приложение, или выход из Windows, MFC предложит сохранить документ. Windows Forms не поддерживает эквивалентную поддержку.

  • Команды

    MFC имеет концепцию команд. Строка меню, панель инструментов и контекстное меню могут вызывать одну и ту же команду, например вырезать и копировать. В Windows Forms команды тесно привязаны к событиям из определенного элемента пользовательского интерфейса (например, элемента меню); Таким образом, необходимо явно подключить все события команды. Можно также обрабатывать несколько событий с помощью одного обработчика в Windows Forms. Дополнительные сведения см. в разделе Подключение нескольких событий в один обработчик событий в Windows Forms.

  • Маршрутизация команд

    Маршрутизация команд MFC позволяет активному представлению или документу обрабатывать команды. Так как одна и та же команда часто имеет разные значения для разных представлений (например, копирование ведет себя по-разному в режиме редактирования текста, чем в графическом редакторе), команды должны обрабатываться активным представлением. Так как меню и панели инструментов Windows Forms не имеют встроенного понимания активного представления, вы не можете иметь другой обработчик для каждого типа представления для событий MenuItem.Click без написания дополнительного внутреннего кода.

  • Механизм обновления команд

    MFC имеет механизм обновления команд. Поэтому активное представление или документ отвечает за состояние элементов пользовательского интерфейса (например, включение или отключение элемента меню или кнопки инструментов и проверка состояния). Windows Forms не имеет эквивалента механизма обновления команд.

См. также

Использование пользовательского элемента управления формы Windows Forms в MFC