Share via


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

  1. 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.

  2. Dans la zone Nom , tapez MFCD2DWalkthrough. Choisissez OK.

  3. 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

  1. 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.

  2. 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

  1. Dans le menu Projet , choisissez Assistant Classe.

  2. Dans l’Assistant Classe MFC, sous Nom de classe, sélectionnez CMFCD2DWalkthroughView.

  3. Sous l’onglet Messages, dans la zone Messages, sélectionnezWM_SIZE, puis choisissez Ajouter un gestionnaire. Cette action ajoute le OnSize gestionnaire de messages à la CMFCD2DWalkthroughView classe.

  4. Dans la zone Gestionnaires existants, sélectionnez OnSize. Choisissez Modifier le code pour afficher la CMFCD2DWalkthroughView::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

  1. Dans le menu Projet , choisissez Assistant Classe.

  2. Dans l’Assistant Classe MFC, sous Nom de classe, sélectionnez CMFCD2DWalkthroughView.

  3. Sous l’onglet Messages , choisissez Ajouter un message personnalisé.

  4. 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.

  5. Dans la zone Gestionnaires existants, sélectionnez OnDraw2D. Choisissez Modifier le code pour afficher la CMFCD2DWalkthroughView::OnDraw2D méthode. Utilisez ce code pour la CMFCD2DWalkthroughView::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.

Voir aussi

Procédures pas à pas