Exemplarische Vorgehensweise: Hinzufügen eines D2D-Objekts zu einem MFC-Projekt
In dieser exemplarischen Vorgehensweise erfahren Sie, wie Sie einem Visual C++-, Microsoft Foundation Class Library (MFC)-Projekt ein einfaches Direct2D-Objekt (D2D) hinzufügen und dann das Projekt in eine Anwendung erstellen, die "Hello, World!" auf einem Farbverlaufshintergrund druckt.
Die exemplarische Vorgehensweise zeigt, wie Sie diese Aufgaben ausführen:
Erstellen Sie eine MFC-Anwendung.
Erstellen Sie einen Pinsel mit Volltonfarbe und einen linearen Farbverlaufpinsel.
Ändern Sie den Farbverlaufpinsel so, dass er sich entsprechend ändert, wenn die Größe des Fensters geändert wird.
Implementieren sie einen D2D-Zeichnungshandler.
Überprüfen Sie die Ergebnisse.
Hinweis
Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Personalisieren der IDE.
Voraussetzungen
Um diese exemplarische Vorgehensweise abzuschließen, müssen Sie Visual Studio mit der Desktopentwicklung mit C++ -Workload und der optionalen Visual C++-MFC für x86- und x64-Komponente installiert haben.
So erstellen Sie eine MFC-Anwendung
Verwenden Sie den MFC-Anwendungs-Assistenten , um eine MFC-Anwendung zu erstellen. Siehe Exemplarische Vorgehensweise: Verwenden der neuen MFC-Shellsteuerelemente für Anweisungen zum Öffnen des Assistenten für Ihre Version von Visual Studio.
Geben Sie im Feld "Name " den Namen "MFCD2DWalkthrough" ein. Wählen Sie OK aus.
Wählen Sie im MFC-Anwendungs-Assistenten "Fertig stellen" aus, ohne die Einstellungen zu ändern.
So erstellen Sie einen Pinsel mit Volltonfarbe und einen linearen Farbverlaufpinsel
Öffnen Sie in Projektmappen-Explorer im Projekt MFCD2DWalkthrough im Ordner "Headerdateien" MFCD2DWalkthroughView.h. Fügen Sie der
CMFCD2DWalkthroughView
Klasse diesen Code hinzu, um drei Datenvariablen zu erstellen:CD2DTextFormat* m_pTextFormat; CD2DSolidColorBrush* m_pBlackBrush; CD2DLinearGradientBrush* m_pLinearGradientBrush;
Speichern Sie die Datei, und schließen Sie sie.
Öffnen Sie im Ordner "Quelldateien " MFCD2DWalkthroughView.cpp. Fügen Sie im Konstruktor für die
CMFCD2DWalkthroughView
Klasse diesen Code hinzu:// Enable D2D support for this window: EnableD2DSupport(); // Initialize D2D resources: m_pBlackBrush = new CD2DSolidColorBrush( GetRenderTarget(), D2D1::ColorF(D2D1::ColorF::Black)); m_pTextFormat = new CD2DTextFormat( GetRenderTarget(), _T("Verdana"), 50); m_pTextFormat->Get()->SetTextAlignment( DWRITE_TEXT_ALIGNMENT_CENTER); m_pTextFormat->Get()->SetParagraphAlignment( DWRITE_PARAGRAPH_ALIGNMENT_CENTER); D2D1_GRADIENT_STOP gradientStops[2]; gradientStops[0].color = D2D1::ColorF(D2D1::ColorF::White); gradientStops[0].position = 0.f; gradientStops[1].color = D2D1::ColorF(D2D1::ColorF::Indigo); gradientStops[1].position = 1.f; m_pLinearGradientBrush = new CD2DLinearGradientBrush( GetRenderTarget(), gradientStops, ARRAYSIZE(gradientStops), D2D1::LinearGradientBrushProperties( D2D1::Point2F(0,0), D2D1::Point2F(0,0)));
Speichern Sie die Datei, und schließen Sie sie.
So ändern Sie den Farbverlaufpinsel so, dass er sich entsprechend ändert, wenn die Größe des Fensters geändert wird
Wählen Sie im Menü "Projekt" die Option "Kurs-Assistent" aus.
Wählen Sie im MFC-Klassen-Assistenten unter Dem Klassennamen die Option
CMFCD2DWalkthroughView
aus.Wählen Sie auf der Registerkarte "Nachrichten" im Feld "Nachrichten" die Option
WM_SIZE
"Handler hinzufügen" aus. Diese Aktion fügt der Klasse denOnSize
Nachrichtenhandler hinzuCMFCD2DWalkthroughView
.Wählen Sie im Feld "Vorhandene Handler" die Option
OnSize
aus. Wählen Sie "Code bearbeiten" aus, um dieCMFCD2DWalkthroughView::OnSize
Methode anzuzeigen. Fügen Sie am Ende der Methode den folgenden Code hinzu.m_pLinearGradientBrush->SetEndPoint(CPoint(cx, cy));
Speichern Sie die Datei, und schließen Sie sie.
So implementieren Sie einen D2D-Zeichnungshandler
Wählen Sie im Menü "Projekt" die Option "Kurs-Assistent" aus.
Wählen Sie im MFC-Klassen-Assistenten unter Dem Klassennamen die Option
CMFCD2DWalkthroughView
aus.Wählen Sie auf der Registerkarte "Nachrichten " die Option "Benutzerdefinierte Nachricht hinzufügen" aus.
Geben Sie im Dialogfeld "Benutzerdefinierte Nachricht hinzufügen" im Feld "Benutzerdefinierte Windows-Nachricht" AFX_WM_DRAW2D ein. Geben Sie im Feld "Name des Nachrichtenhandlers" "OnDraw2D" ein. Wählen Sie die Option "Registrierte Nachricht" und dann "OK" aus. Diese Aktion fügt der Klasse einen Nachrichtenhandler für die AFX_WM_DRAW2D Nachricht hinzu
CMFCD2DWalkthroughView
.Wählen Sie im Feld "Vorhandene Handler" die Option
OnDraw2D
aus. Wählen Sie "Code bearbeiten" aus, um dieCMFCD2DWalkthroughView::OnDraw2D
Methode anzuzeigen. Verwenden Sie diesen Code für dieCMFCD2DWalkthroughView::OnDrawD2D
Methode:afx_msg LRESULT CMFCD2DWalkthroughView::OnDraw2D( WPARAM wParam, LPARAM lParam) { CHwndRenderTarget* pRenderTarget = (CHwndRenderTarget*)lParam; ASSERT_VALID(pRenderTarget); CRect rect; GetClientRect(rect); pRenderTarget->FillRectangle(rect, m_pLinearGradientBrush); pRenderTarget->DrawText( _T("Hello, World!"), rect, m_pBlackBrush, m_pTextFormat); return TRUE; }
Speichern Sie die Datei, und schließen Sie sie.
So überprüfen Sie die Ergebnisse
Erstellen Sie die Anwendung und führen Sie sie aus. Es sollte ein Farbverlaufsrechteck aufweisen, das sich ändert, wenn Sie die Größe des Fensters ändern. "Hallo Welt!" sollte in der Mitte des Rechtecks angezeigt werden.