Procédure pas à pas : ajout d'un objet D2D à un projet MFC
Cette procédure pas à pas explique comment ajouter un objet Direct2D (D2D) de base à un projet Visual C++, MFC (Microsoft Foundation Class Library), puis générer le projet dans une application qui imprime « Hello, World ! » sur un arrière-plan dégradé.
La procédure pas à pas montre comment effectuer ces tâches :
Créez une application MFC.
Créez un pinceau de couleur unie et un pinceau de dégradé linéaire.
Modifiez le pinceau dégradé de façon à ce qu’il change correctement lorsque la fenêtre est redimensionnée.
Implémentez un gestionnaire de dessinS D2D.
Vérifier les résultats.
Remarque
Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d’informations, consultez Personnalisation de l’IDE.
Prérequis
Pour effectuer cette procédure pas à pas, Visual Studio doit être installé avec la charge de travail Développement Desktop avec la charge de travail C++ et le composant MFC Visual C++ facultatif pour x86 et x64 .
Pour créer une application MFC
Utilisez l’Assistant Application MFC pour créer une application MFC. Consultez la procédure pas à pas : utilisation des nouveaux contrôles Shell MFC pour obtenir des instructions sur l’ouverture de l’Assistant pour votre version de Visual Studio.
Dans la zone Nom , tapez MFCD2DWalkthrough. Choisissez OK.
Dans l’Assistant Application MFC, choisissez Terminer sans modifier de paramètres.
Pour créer un pinceau de couleur unie et un pinceau de dégradé linéaire
Dans Explorateur de solutions, dans le projet MFCD2DWalkthrough, dans le dossier Fichiers d’en-tête, ouvrez MFCD2DWalkthroughView.h. Ajoutez ce code à la
CMFCD2DWalkthroughView
classe pour créer trois variables de données :CD2DTextFormat* m_pTextFormat; CD2DSolidColorBrush* m_pBlackBrush; CD2DLinearGradientBrush* m_pLinearGradientBrush;
Enregistrez le fichier et fermez-le.
Dans le dossier Fichiers sources, ouvrez MFCD2DWalkthroughView.cpp. Dans le constructeur de la
CMFCD2DWalkthroughView
classe, ajoutez ce code :// 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)));
Enregistrez le fichier et fermez-le.
Pour modifier le pinceau dégradé afin qu’il change correctement lorsque la fenêtre est redimensionnée
Dans le menu Projet , choisissez Assistant Classe.
Dans l’Assistant Classe MFC, sous Nom de classe, sélectionnez
CMFCD2DWalkthroughView
.Sous l’onglet Messages, dans la zone Messages, sélectionnez
WM_SIZE
, puis choisissez Ajouter un gestionnaire. Cette action ajoute leOnSize
gestionnaire de messages à laCMFCD2DWalkthroughView
classe.Dans la zone Gestionnaires existants, sélectionnez
OnSize
. Choisissez Modifier le code pour afficher laCMFCD2DWalkthroughView::OnSize
méthode. À la fin de la méthode, ajoutez le code suivant.m_pLinearGradientBrush->SetEndPoint(CPoint(cx, cy));
Enregistrez le fichier et fermez-le.
Pour implémenter un gestionnaire de dessinS D2D
Dans le menu Projet , choisissez Assistant Classe.
Dans l’Assistant Classe MFC, sous Nom de classe, sélectionnez
CMFCD2DWalkthroughView
.Sous l’onglet Messages , choisissez Ajouter un message personnalisé.
Dans la boîte de dialogue Ajouter un message personnalisé, dans la zone Message Windows personnalisé, tapez AFX_WM_DRAW2D. Dans la zone nom du gestionnaire de messages, tapez OnDraw2D. Sélectionnez l’option Message inscrit, puis choisissez OK. Cette action ajoute un gestionnaire de messages pour le message AFX_WM_DRAW2D à la
CMFCD2DWalkthroughView
classe.Dans la zone Gestionnaires existants, sélectionnez
OnDraw2D
. Choisissez Modifier le code pour afficher laCMFCD2DWalkthroughView::OnDraw2D
méthode. Utilisez ce code pour laCMFCD2DWalkthroughView::OnDrawD2D
méthode :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; }
Enregistrez le fichier et fermez-le.
Pour vérifier les résultats
Créer et exécuter l’application. Il doit avoir un rectangle de dégradé qui change lorsque vous redimensionnez la fenêtre. « Hello World ! » doit être affiché au centre du rectangle.