Практическое руководство. Создание пользовательского элемента управления и просмотр ведущего интерфейса MDI
Обновлен: Ноябрь 2007
Следующие процедуры демонстрируют способы создания пользовательского элемента управления .NET Frameworks, регистрации пользовательского элемента управления в библиотеке классов (а именно проект Windows Control Library) и компиляции проекта в сборке. Можно применять элемент управления в приложении библиотеки MFC, а также классы, которые происходят из CView Class и CWinFormsView Class.
Дополнительные сведения о способе создания пользовательского элемента управления Windows Forms и о разработке библиотеки класса для элемента управления см. в разделе Практическое руководство. Разработка пользовательских элементов управления.
Примечание. |
---|
В некоторых случаях, элементы управления WinForms, такие как элементы управления третьей стороны Grid, работают не стабильно при размещении в приложении библиотеки MFC. Рекомендуемый обходной путь — поместить пользовательский элемент управления Windows Forms в приложение библиотеки MFC, а элемент управления третьей стороны Grid внутри пользовательского элемента управления. |
Эта процедура предполагает, что проект библиотеки элементов управления Windows Forms был создан под названием WindowsControlLibrary1 как одна процедура в Практическое руководство. Создание пользовательского элемента управления и ведущего приложения в диалоговом окне.
Создание ведущего приложения MFC
Создайте новый проект приложения MFC.
В меню Файл выберите команду New и нажмите Проект. В папке Visual C++ выберите Приложение MFC.
В поле Имя введите MFC02, затем измените значение параметра "Решение" наДобавить в решение.Нажмите кнопку ОК.
В разделе Мастер приложений MFC примите все параметры по умолчанию и нажмите кнопку Готово. Будет создано приложение MFC с интерфейсом MDI.
Настройте конфигурацию проекта.
В Обозревателе решений щелкните правой кнопкой мыши узел проекта MFC02 и выберите пункт Свойства в контекстном меню. Появится диалоговое окно Страницы свойств.
В диалоговом окне Страницы свойств в дереве Свойства конфигурации выберите пункт Общие, затем в разделе Значения по умолчанию для проекта установите для параметра Поддержка Common Language Runtime значение Поддержка CLR-среды (/clr). Нажмите кнопку OК.
Добавьте ссылку на элемент управления .NET.
В Обозревателе решений щелкните правой кнопкой мыши узел проекта MFC02 и выберите пункт Ссылки. В окне Страница свойств нажмите Добавить новую ссылку, выберите проект WindowsControlLibrary1 (на вкладке Проекты) и нажмите кнопку ОК. В результате добавляется ссылка в форме параметра компилятора /FU, которая позволяет скомпилировать программу. Также в каталог проекта MFC02 копируется файл WindowsControlLibrary1.dll, который позволяет запускать программу.
Найдите строку в файле 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(WindowsControlLibrary1::UserControl1::typeid) { } BEGIN_MESSAGE_MAP(CMFC02View, CWinFormsView) //leave existing body as is END_MESSAGE_MAP()
Выполните построение и запуск проекта.
В разделе Обозреватель решений нажмите правой кнопкой мыши MFC02 и выберите Установить как запускаемый проект.
В меню Построение выберите команду Построить решение.
В меню Отладка выберите команду Запуск без отладки.
См. также
Другие ресурсы
Размещение пользовательского элемента управления формы Windows Forms в качестве представления MFC