Поделиться через


Практическое руководство. Создание пользовательского элемента управления и просмотр ведущего интерфейса MDI

Следующие процедуры демонстрируют способы создания пользовательского элемента управления .NET Framework, регистрации пользовательского элемента управления в библиотеке классов (а именно в проекте Windows Control Library) и компиляции проекта в сборку. Элемент управления затем можно применять в приложении MFC, использующем классы, производные от CView Class и CWinFormsView Class.

Дополнительные сведения о способе создания пользовательского элемента управления Windows Forms и о разработке библиотеки класса для элемента управления см. в разделе Практическое руководство. Разработка пользовательских элементов управления.

Примечание

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

Эта процедура предполагает, что проект библиотеки элементов управления Windows Forms был создан под названием WindowsFormsControlLibrary1 как одна процедура в Практическое руководство. Создание пользовательского элемента управления и ведущего приложения в диалоговом окне.

Создание ведущего приложения MFC

  1. Создайте проект приложения MFC.

    В меню Файл выберите команду Создать и щелкните Проект. В папке Visual C++ выберите Приложение MFC.

    В поле Имя введите MFC02 и измените параметр Решение на Добавить в решение.Нажмите кнопку ОК.

    В разделе Мастер приложений MFC примите все параметры по умолчанию и нажмите кнопку Готово. Будет создано приложение MFC с интерфейсом MDI.

  2. Настройте проект на поддержку среды CLR.

    В Обозревателе решений щелкните правой кнопкой мыши узел проекта MFC01 и выберите пункт Свойства в контекстном меню. Появится диалоговое окно Страницы свойств.

    В разделе Свойства конфигурации выберите Общие. В разделе Значения по умолчанию для проекта задайте для параметра Поддержка среды CLR значение Поддержка среды CLR (/clr).

    В разделе Свойства конфигурации разверните C/C++ и щелкните узел Общие. Выберите в поле Формат отладочной информации значение База данных программы (/Zi).

    Щелкните узел Создание кода. Установите параметр Включить минимальное перестроение в значение Нет (/Gm-). Установите параметр Основные проверки времени выполнения в значение По умолчанию.

    Нажмите кнопку ОК, чтобы применить изменения.

  3. Добавьте в файл stdafx.h следующий код:

    #using <System.Windows.Forms.dll>
    
  4. Добавьте ссылку на элемент управления .NET.

    В Обозревателе решений щелкните правой кнопкой мыши узел проекта MFC02 и выберите пункт Ссылки. В окне Страница свойств щелкните Добавить новую ссылку, выберите WindowsFormsControlLibrary1 (на вкладке Проекты) и нажмите кнопку ОК. В результате добавляется ссылка в форме параметра компилятора /FU, которая позволяет скомпилировать программу. Также в каталог проекта MFC02 копируется файл WindowsFormsControlLibrary1.dll, который позволяет запускать программу.

  5. Найдите строку в файле stdafx.h:

    #endif // _AFX_NO_AFXCMN_SUPPORT 
    

    Добавьте над этой строкой следующие строки:

    #include <afxwinforms.h>   // MFC Windows Forms support
    
  6. Внесите изменения в представление класса таким образом, чтобы класс наследовался в CWinFormsView.

    В MFC02View.h замените CView на CWinFormsView, чтобы код отобразился следующим образом:

    class CMFC02View : public CWinFormsView
    {
    };
    

    Если нужно добавить дополнительное представление в приложение MDI, необходимо открыть каждое созданное пользователем представление CWinApp::AddDocTemplate.

  7. Модифицируйте файл 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()
    
  8. Выполните построение и запуск проекта.

    В разделе Обозреватель решений нажмите правой кнопкой мыши MFC02 и выберите Установить как запускаемый проект.

    В меню Построение выберите Построить решение.

    В меню Отладка выберите команду Запуск без отладки.

См. также

Другие ресурсы

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