Porady: tworzenie formantu użytkownika i hostowanie widoku MDI
Poniższe kroki pokazują jak utworzyć formant użytkownika .NET Framework, stać się autorem formantu użytkownika w bibliotece klas formantów (w szczególności Projekt Biblioteka formantów systemu Windows), a następnie skompilować projekt w zespół.Formanty mogą być bezpiecznie spożywane z aplikacji MFC, która używa klas pochodzących od Klasa CView i Klasa CWinFormsView.
Aby uzyskać informacje o tym, jak utworzyć formant użytkownika interfejsu Windows Forms i utworzyć bibliotekę klas formantów, zobacz Jak: Tworzenie formantów użytkowników.
[!UWAGA]
W niektórych przypadkach formanty interfejsu Windows Forms, takie jak formant siatki innych firm, mogą nie zachowywać się niezawodnie podczas hostowania w aplikacji MFC.Zalecaną praktyką jest umieszczenie kontrolki użytkownika Windows Forms w aplikacji MFC i umieszczenie kontrolki siatki innych firm w kontrolce użytkownika.
Ta procedura zakłada, że utworzony został projekt Biblioteka formantów Windows Forms o nazwie WindowsFormsControlLibrary1, zgodnie z procedurą określoną w Porady: tworzenie formantu użytkownika i hosta w oknie dialogowym.
Aby utworzyć aplikację hosta MFC
Utwórz projekt aplikacji MFC.
W menu Plik zaznacz Nowy, a następnie kliknij Projekt.W folderze Visual C++ wybierz pozycję Aplikacja MFC.
W polu Nazwa wprowadź MFC02 i zmień ustawienie Rozwiązanie na Dodaj do rozwiązania.Kliknij przycisk OK.
W Kreatorze aplikacji MFC zaakceptuj wszystkie ustawienia domyślne, a następnie kliknij przycisk Zakończ.Tworzy to aplikację MFC z interfejsem wielu dokumentów.
Konfigurowanie projektu dla wsparcia Common Language Runtime (CLR).
W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy węzeł projektu MFC01 i wybierz polecenie Właściwości z menu kontekstowego.Wyświetli się okno dialogowe Strony właściwości.
W Właściwości konfiguracji, wybierz Ogólne.W sekcji Wartości domyślne projektu ustaw Obsługa środowiska uruchomieniowego języka wspólnego na Wsparcie CLR (/clr).
W Właściwości konfiguracji, rozwiń C/C++ i kliknij węzeł Ogólne.Ustaw Format informacji debugowania dla Bazy danych programu (/Zi).
Kliknij węzeł Generowanie kodu.Ustaw Włącz minimalną ponowną kompilację na Nr (/ Gm-).Ustaw też Podstawowe sprawdzenia środowiska uruchomieniowego na Domyślne.
Kliknij przycisk OK, aby zastosować zmiany.
W pliku stdafx.h należy dodać następujący wiersz:
#using <System.Windows.Forms.dll>
Dodaj odwołanie do formantu .NET.
W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy węzeł projektu MFC02 i wybierz kolejno polecenia Dodaj > Odwołania.W oknie dialogowym Stronie właściwości kliknij przycisk Dodaj nowe odwołanie, zaznacz pozycję WindowsFormsControlLibrary1 (na karcie Projekty) i kliknij przycisk OK.Dodaje to odwołanie w formie opcji kompilatora /FU, tak aby program został skompilowany; kopiuje również WindowsFormsControlLibrary1.dll do katalogu projektu MFC02, aby program mógł zostać uruchomiony.
W pliku stdafx.h znajdź ten wiersz:
#endif // _AFX_NO_AFXCMN_SUPPORT
Nad nim dodaj następujące wiersze:
#include <afxwinforms.h> // MFC Windows Forms support
Zmodyfikuj widok klasy, tak aby dziedziczył z obiektu CWinFormsView.
W pliku MFC02View.h należy zastąpić obiekt CView obiektem CWinFormsView, tak że kod wygląda następująco:
class CMFC02View : public CWinFormsView { };
Jeśli chcesz dodać dodatkowe widoki do aplikacji MDI, trzeba będzie wywołać funkcję CWinApp::AddDocTemplate dla każdego widoku tworzonego.
Zmodyfikuj plik MFC02View.cpp, aby zmienić element CView na CWinFormsView w makrze IMPLEMENT_DYNCREATE i na mapie komunikatów, i zastąp istniejący pusty konstruktor konstruktorem pokazanym poniżej:
IMPLEMENT_DYNCREATE(CMFC02View, CWinFormsView) CMFC02View::CMFC02View(): CWinFormsView(WindowsFormsControlLibrary1::UserControl1::typeid) { } BEGIN_MESSAGE_MAP(CMFC02View, CWinFormsView) //leave existing body as is END_MESSAGE_MAP()
Skompiluj i uruchom projekt.
W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy pozycję MFC02 i wybierz polecenie Ustaw jako projekt startowy.
W menu Kompilacja kliknij Kompiluj rozwiązanie.
Na pasku menu kliknij Debugowanie, Rozpocznij bez debugowania.
Zobacz też
Inne zasoby
Hostowanie formantu użytkownika interfejsu Windows Forms jako widoku MFC