Создание приложения MFC Creating an MFC Application
Приложение MFC является исполняемым приложением для Windows на основе библиотеки Microsoft Foundation Class (MFC). An MFC application is an executable application for Windows that is based on the Microsoft Foundation Class (MFC) Library. Исполняемые файлы MFC обычно делятся на пять типов: стандартные приложения Windows, диалоговые окна, приложения на основе форм, приложения в стиле обозревателя и приложения в стиле веб-браузера. MFC executables generally fall into five types: standard Windows applications, dialog boxes, forms-based applications, Explorer-style applications, and Web browser-style applications. Дополнительные сведения можно найти в разделе For more information, see:
Мастер приложений MFC создает соответствующие классы и файлы для приложений любого типа в зависимости от параметров, выбранных в мастере. The MFC Application Wizard generates the appropriate classes and files for any of these types of applications, depending on the options you select in the wizard.
Самый простой способ создать приложение MFC — использовать мастер приложений MFC (проект приложения MFC в Visual Studio 2019). The easiest way to create an MFC application is to use the MFC Application Wizard (MFC App project in Visual Studio 2019). Чтобы создать консольное приложение MFC (программу командной строки, использующую библиотеки MFC, но выполняемые в окне консоли), воспользуйтесь мастером рабочего стола Windows и выберите параметры консольное приложение и MFC Headers . To create an MFC console application (a command-line program that uses MFC libraries but runs in the console window), use the Windows Desktop Wizard and choose the Console Application and MFC Headers options.
Создание форм MFC или приложения на основе диалоговых окон To create an MFC forms or dialog-based application
- В главном меню выберите файл >создать >проект. From the main menu, choose File >New >Project.
- В поле поиска введите «MFC», а затем выберите приложение MFC в списке результатов. Enter «MFC» into the search box and then choose MFC App from the result list.
- При необходимости измените значения по умолчанию, а затем нажмите кнопку создать , чтобы открыть Мастер приложений MFC. Modify the defaults as needed, then press Create to open the MFC Application Wizard.
- При необходимости измените значения конфигурации, а затем нажмите кнопку Готово. Modify the configuration values as needed, then press Finish.
Создание консольного приложения MFC To create an MFC console application
Консольное приложение MFC — это программа командной строки, которая использует библиотеки MFC, но выполняется в окне консоли. An MFC console application is a command-line program that uses MFC libraries but runs in the console window.
- В главном меню выберите файл >создать >проект. From the main menu, choose File >New >Project.
- В поле поиска введите «Desktop», а затем выберите Мастер рабочего стола Windows в списке результатов. Enter «Desktop» into the search box and then choose Windows Desktop Wizard from the result list.
- При необходимости измените имя проекта, а затем нажмите кнопку Далее , чтобы открыть Мастер рабочего стола Windows. Modify the project name as needed, then press Next to open the Windows Desktop Wizard.
- Установите флажок заголовки MFC и при необходимости задайте другие значения, а затем нажмите кнопку Готово. Check the MFC Headers box and set other values as needed, then press Finish.
Создание форм MFC или приложения на основе диалоговых окон To create an MFC forms or dialog-based application
- В главном меню выберите файл >создать >проект. From the main menu, choose File >New >Project.
- В разделе установленные шаблоны выберите Visual C++ >MFC/ATL. Under the Installed templates, choose Visual C++ >MFC/ATL. Если вы не видите их, используйте Visual Studio Installer, чтобы добавить их. If you don’t see these, use the Visual Studio Installer to add them.
- В центральной области выберите приложение MFC . Choose MFC Application from the center pane.
- При необходимости измените значения конфигурации, а затем нажмите кнопку Готово. Modify the configuration values as needed, then press Finish.
Создание консольного приложения MFC To create an MFC console application
Консольное приложение MFC — это программа командной строки, которая использует библиотеки MFC, но выполняется в окне консоли. An MFC console application is a command-line program that uses MFC libraries but runs in the console window.
- В главном меню выберите файл >создать >проект. From the main menu, choose File >New >Project.
- В разделе установленные шаблоны выберите Visual C++ >Рабочий стол Windows. Under the Installed templates, choose Visual C++ >Windows Desktop.
- Выберите Мастер рабочего стола Windows в центральной области. Choose Windows Desktop Wizard from the center pane.
- При необходимости измените имя проекта, а затем нажмите кнопку ОК , чтобы открыть Мастер рабочего стола Windows. Modify the project name as needed, then press OK to open the Windows Desktop Wizard.
- Установите флажок заголовки MFC и при необходимости задайте другие значения, а затем нажмите кнопку Готово. Check the MFC Headers box and set other values as needed, then press Finish.
Создание форм MFC или приложения на основе диалоговых окон To create an MFC forms or dialog-based application
- В главном меню выберите файл >создать >проект. From the main menu, choose File >New >Project.
- В разделе установленные шаблоны выберите Visual C++ >MFC. Under the Installed templates, choose Visual C++ >MFC.
- В центральной области выберите приложение MFC . Choose MFC Application from the center pane.
- Нажмите кнопку Далее , чтобы запустить Мастер приложений MFC. Click Next to start the MFC Application Wizard.
Создание консольного приложения MFC To create an MFC console application
Консольное приложение MFC — это программа командной строки, которая использует библиотеки MFC, но выполняется в окне консоли. An MFC console application is a command-line program that uses MFC libraries but runs in the console window.
- В главном меню выберите файл >создать >проект. From the main menu, choose File >New >Project.
- В разделе установленные шаблоны выберите Visual C++ >Win32. Under the Installed templates, choose Visual C++ >Win32.
- В центральной области выберите консольное приложение Win32 . Choose Win32 Console Application from the center pane.
- При необходимости измените имя проекта, а затем нажмите кнопку ОК. Modify the project name as needed, then press OK.
- На второй странице мастера установите флажок Добавить общие заголовки для MFC и при необходимости задайте другие значения, а затем нажмите кнопку Готово. On the second page of the wizard, check the Add common headers for MFC box and set other values as needed, then press Finish.
Различия в программировании Windows Forms/MFC Windows Forms/MFC Programming Differences
В разделах, посвященных использованию пользовательского элемента управления формы Windows Forms в MFC , ОПИСЫВАЕТСЯ поддержка MFC для Windows Forms. The topics in Using a Windows Form User Control in MFC describe the MFC support for Windows Forms. Если вы не знакомы с .NET Framework или программированием MFC, в этом разделе содержатся фундаментальные сведения о различиях в программировании между ними. If you are not familiar with .NET Framework or MFC programming, this topic provides background information about programming differences between the two.
Windows Forms предназначен для создания приложений Microsoft Windows на .NET Framework. Windows Forms is for creating Microsoft Windows applications on the .NET Framework. Эта платформа предоставляет современный, объектно-ориентированный и расширяемый набор классов, позволяющих разрабатывать Многофункциональные приложения на основе Windows. This framework provides a modern, object-oriented, extensible set of classes that enable you to develop rich Windows-based applications. С помощью Windows Forms вы можете создать многофункциональное клиентское приложение, которое может получать доступ к различным источникам данных и предоставлять средства для просмотра данных и редактирования данных с помощью элементов управления Windows Forms. With Windows Forms, you are able to create a rich client application that can access a wide variety of data sources and provide data-display and data-editing facilities using Windows Forms controls.
Однако, если вы привыкли к MFC, вы можете использовать для создания приложений некоторых типов, которые еще не поддерживаются в Windows Forms. However, if you are accustomed to MFC, you might be used to creating certain types of applications that are not yet explicitly supported in Windows Forms. Windows Forms приложения эквивалентны диалоговым приложениям MFC. Windows Forms applications are equivalent to MFC dialog applications. Однако они не предоставляют инфраструктуре прямую поддержку других типов приложений MFC, таких как сервер документов OLE, контейнер, документы ActiveX, поддержка документов и представлений для интерфейса с одним документом (SDI), многодокументный интерфейс (MDI) и несколько интерфейсов верхнего уровня (МТИ). However, they do not provide the infrastructure to directly support other MFC application types like OLE document server/container, ActiveX documents, the Document/View support for single-document interface (SDI), multiple-document interface (MDI), and multiple top-level interface (MTI). Для создания этих приложений можно написать собственную логику. You can write your own logic to create these applications.
Дополнительные сведения о Windows Forms приложениях см. в статье Введение в Windows Forms. For more information about Windows Forms applications, see Introduction to Windows Forms.
Пример приложения, в котором показаны Windows Forms, используемые в MFC, см. в разделе Интеграция MFC и Windows Forms. For a sample application that shows Windows Forms used with MFC, see MFC and Windows Forms Integration.
Следующие функции представления MFC или документов и команд маршрутизации не имеют эквивалентов в Windows Forms: The following MFC view or document and command routing features have no equivalents in Windows Forms:
Интеграция оболочки Shell integration
MFC обрабатывает команды динамического обмена данными (DDE) и аргументы командной строки, используемые оболочкой при щелчке правой кнопкой мыши по документу и выборе таких команд как открытие, изменение или печать. MFC handles the dynamic data exchange (DDE) commands and command-line arguments that the shell uses when you right-click a document and select such verbs as Open, Edit, or Print. Windows Forms не имеет интеграции оболочки и не реагирует на команды оболочки. Windows Forms has no shell integration and does not respond to shell verbs.
Шаблоны документов Document templates
В MFC шаблоны документов связывают представление, которое содержится в фрейме окна (в режиме MDI, SDI или МТИ), с открытым документом. In MFC, document templates associate a view, which is contained in a frame window (in MDI, SDI, or MTI mode), with the document you opened. Windows Forms не имеет эквивалента шаблонам документов. Windows Forms has no equivalent to document templates.
MFC регистрирует типы файлов документов и обрабатывает тип документа при открытии документа из оболочки. MFC registers document file types and processes the document type when opening a document from the shell. Windows Forms не поддерживает документы. Windows Forms has no document support.
Состояния документов Document states
MFC сохраняет «грязные» состояния для документа. MFC maintains dirty states for the document. Таким образом, когда вы закроете приложение, закройте Последнее представление, содержащее приложение, или завершите работу из Windows, MFC предложит сохранить документ. Therefore, when you close the application, close the last view that contains the application, or exit from Windows, MFC prompts you to save the document. Windows Forms не имеет эквивалентной поддержки. Windows Forms has no equivalent support.
В MFC имеется концепция команд. MFC has the concept of commands. В строке меню, панели инструментов и в контекстном меню можно вызвать одну и ту же команду, например вырезать и копировать. The menu bar, toolbar, and context menu can all invoke the same command, for example, Cut and Copy. В Windows Forms команды являются жестко привязанными событиями из определенного элемента пользовательского интерфейса (например, пункта меню); Поэтому необходимо явным образом подключить все командные события. In Windows Forms, commands are tightly bound events from a particular UI element (such as a menu item); therefore, you have to hook up all the command events explicitly. Можно также выполнить обработку нескольких событий с помощью одного обработчика в Windows Forms. You can also handle multiple events with a single handler in Windows Forms. Дополнительные сведения см. в разделе Подключение нескольких событий к одному обработчику событий в Windows Forms. For more information, see Connecting Multiple Events to a Single Event Handler in Windows Forms.
Маршрутизация команд Command routing
Маршрутизация команд MFC позволяет активному представлению или документу обрабатывать команды. MFC command routing enables the active view or document to process commands. Так как одна и та же команда часто имеет разные значения для различных представлений (например, при редактировании в режиме редактирования текста по-разному, чем в графическом редакторе), команды должны обрабатываться активным представлением. Because the same command often has different meanings for different views (for example, Copy behaves differently in text edit view than in a graphics editor), the commands need to be handled by the active view. Поскольку Windows Forms меню и панелях инструментов не имеют четкого представления об активном представлении, у вас не может быть другого обработчика для каждого типа представления для событий MenuItem. Click без написания дополнительного внутреннего кода. Because Windows Forms menus and toolbars have no inherent understanding of the active view, you cannot have a different handler for each view type for your MenuItem.Click events without writing additional internal code.
Механизм обновления команд Command update mechanism
В MFC имеется механизм обновления команд. MFC has a command update mechanism. Таким образом, активное представление или документ отвечает за состояние элементов пользовательского интерфейса (например, включение или отключение элемента меню или кнопки инструмента и состояния проверки). Therefore, the active view or document is responsible for the state of the UI elements (for example, enabling or disabling a menu item or tool button, and checked states). Windows Forms не имеет эквивалента механизма обновления команд. Windows Forms has no equivalent of a command update mechanism.