Практическое руководство. Создание пользовательского элемента управления и просмотр ведущего интерфейса MDI
Ниже показано, как создать элемент управления платформа .NET Framework пользователя, создать элемент управления в библиотеке классов элементов управления (в частности, проект библиотеки элементов управления Windows), а затем скомпилировать проект в сборку. Затем элемент управления можно использовать из приложения MFC, использующего классы, производные от класса CView и класса CWinFormsView.
Сведения о создании пользовательского элемента управления Windows Forms и создании библиотеки классов элементов управления см. в статье "Практическое руководство. Создание пользовательских элементов управления".
Примечание.
В некоторых случаях элементы управления Windows Forms, такие как сторонний элемент управления Grid, могут не вести себя надежно при размещении в приложении MFC. Рекомендуется разместить элемент управления пользователем Windows Forms в приложении MFC и поместить сторонний элемент управления Grid в элемент управления User.
В этой процедуре предполагается, что вы создали проект библиотеки элементов управления Windows Forms с именем WindowsFormsControlLibrary1, как описано в процедуре: Создание пользовательского элемента управления и узла в диалоговом окне.
Создание ведущего приложения MFC
Создайте проект приложения MFC.
В меню "Файл" выберите "Создать" и нажмите кнопку "Проект". В папке Visual C++ выберите приложение MFC.
В поле "Имя" введите и измените параметр решения на "Добавить в решение".
MFC02
Щелкните OK.В мастере приложений MFC примите все значения по умолчанию и нажмите кнопку "Готово". При этом создается приложение MFC с несколькими интерфейсами документов.
Настройте проект для поддержки среды CLR.
В Обозреватель решений щелкните правой
MFC01
кнопкой мыши узел проекта и выберите пункт "Свойства" в контекстном меню. Откроется диалоговое окно "Страницы свойств".В разделе "Свойства конфигурации" выберите "Общие". В разделе "Параметры по умолчанию проекта" задайте для среды CLR поддержку среды CLR (/clr).
В разделе "Свойства конфигурации" разверните узел C/C++ и щелкните узел "Общие". Задайте для отладочного формата информации значение Program Database (/Zi).
Щелкните узел создания кода. Установите параметр "Включить минимальное перестроение " (/Gm-). Кроме того, установите для базовых проверок среды выполнения значение по умолчанию.
Нажмите кнопку "ОК" , чтобы применить изменения.
В pch.h (stdafx.h в Visual Studio 2017 и более ранних версиях) добавьте следующую строку:
#using <System.Windows.Forms.dll>
Добавьте ссылку на элемент управления .NET.
В Обозреватель решений щелкните правой
MFC02
кнопкой мыши узел проекта и выберите "Добавить", "Ссылки". На странице свойств нажмите кнопку "Добавить ссылку", выберите WindowsFormsControlLibrary1 (на вкладке "Проекты") и нажмите кнопку "ОК". Это добавляет ссылку в виде параметра компилятора /FU , чтобы программа компилировала; она также копирует WindowsFormsControlLibrary1.dll вMFC02
каталог проекта, чтобы программа выполнялось.В stdafx.h найдите эту строку:
#endif // _AFX_NO_AFXCMN_SUPPORT
Добавьте следующие строки над ним:
#include <afxwinforms.h> // MFC Windows Forms support
Измените класс представления таким образом, чтобы он наследовал от CWinFormsView.
В MFC02View.h замените CView на CWinFormsView, чтобы код отображалось следующим образом:
class CMFC02View : public CWinFormsView { };
Если вы хотите добавить дополнительные представления в приложение MDI, необходимо вызвать CWinApp::AddDocTemplate для каждого создаваемого представления.
Измените файл MFC02View.cpp, чтобы изменить CView на CWinFormsView в IMPLEMENT_DYNCREATE макросе и карте сообщений и заменить существующий пустой конструктор конструктором, показанным ниже:
IMPLEMENT_DYNCREATE(CMFC02View, CWinFormsView) CMFC02View::CMFC02View(): CWinFormsView(WindowsFormsControlLibrary1::UserControl1::typeid) { } BEGIN_MESSAGE_MAP(CMFC02View, CWinFormsView) //leave existing body as is END_MESSAGE_MAP()
Постройте и запустите проект.
В Обозреватель решений щелкните правой кнопкой мыши MFC02 и выберите "Задать как проект запуска".
В меню Сборка выберите Построить решение.
В меню отладки нажмите кнопку "Пуск" без отладки.
См. также
Размещение пользовательского элемента управления формы Windows Forms в качестве представления MFC