Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 unterschiedliche Namen oder Speicherorte für einige der Visual Studio-Benutzeroberflächenelemente in den folgenden Anweisungen angezeigt. Die Visual Studio-Edition, über die Sie verfügen, und die Einstellungen, die Sie verwenden, bestimmen diese Elemente. Weitere Informationen finden Sie unter Personalisierung 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. Eine Anleitung zum Öffnen des Assistenten für Ihre Version von Visual Studio finden Sie unter Walkthrough: Verwenden der neuen MFC-Shell-Steuerelemente.
Geben Sie im Feld "Name " den Namen "MFCD2DWalkthrough" ein. Wählen Sie OKaus.
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 im Projektmappen-Explorer im Projekt MFCD2DWalkthrough im Ordner "Headerdateien " MFCD2DWalkthroughView.h. Fügen Sie der
CMFCD2DWalkthroughViewKlasse 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
CMFCD2DWalkthroughViewKlasse 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
CMFCD2DWalkthroughViewaus.Wählen Sie auf der Registerkarte "Nachrichten " im Feld "Nachrichten " die Option
WM_SIZE"Handler hinzufügen" aus. Diese Aktion fügt der Klasse denOnSizeNachrichtenhandler hinzuCMFCD2DWalkthroughView.Wählen Sie im Feld "Vorhandene Handler" die Option
OnSizeaus. Wählen Sie "Code bearbeiten" aus, um dieCMFCD2DWalkthroughView::OnSizeMethode 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
CMFCD2DWalkthroughViewaus.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
OnDraw2Daus. Wählen Sie "Code bearbeiten" aus, um dieCMFCD2DWalkthroughView::OnDraw2DMethode anzuzeigen. Verwenden Sie diesen Code für dieCMFCD2DWalkthroughView::OnDrawD2DMethode: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. "Hello World!" sollte in der Mitte des Rechtecks angezeigt werden.