Udostępnij za pośrednictwem


Wskazówki: dodawanie obiektu D2D do projektu MFC

W tym przewodniku przedstawiono sposób dodawania podstawowego obiektu Direct2D (D2D) do projektu Visual C++, Microsoft Foundation Class Library (MFC), a następnie kompilowania projektu w aplikacji, która wyświetla tekst "Hello, World!" na tle gradientu.

W przewodniku pokazano, jak wykonać następujące zadania:

  • Tworzenie aplikacji MFC.

  • Utwórz szczotkę solid-color i szczotkę gradientową liniową.

  • Zmodyfikuj szczotkę gradientu, tak aby zmieniała się odpowiednio po zmianie rozmiaru okna.

  • Zaimplementuj procedurę obsługi rysunku D2D.

  • Sprawdź wyniki.

Uwaga

Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Personalizowanie środowiska IDE.

Wymagania wstępne

Aby ukończyć ten przewodnik, musisz mieć zainstalowany program Visual Studio z pakietem roboczym Programowanie aplikacji klasycznych z obciążeniem języka C++ oraz opcjonalnym składnikiem MFC języka Visual C++ dla x86 i x64.

Aby utworzyć aplikację MFC

  1. Użyj Kreatora aplikacji MFC, aby utworzyć aplikację MFC. Zobacz Przewodnik: używanie nowych kontrolek powłoki MFC, aby uzyskać instrukcje dotyczące otwierania kreatora dla używanej wersji programu Visual Studio.

  2. W polu Nazwa wpisz MFCD2DWalkthrough. Wybierz pozycję OK.

  3. W Kreatorze aplikacji MFC wybierz pozycję Zakończ bez zmieniania żadnych ustawień.

Aby utworzyć szczotkę w kolorze stałym i szczotkę gradientową liniową

  1. W Eksplorator rozwiązań w projekcie MFCD2DWalkthrough w folderze Header Files otwórz plik MFCD2DWalkthroughView.h. Dodaj ten kod do klasy, CMFCD2DWalkthroughView aby utworzyć trzy zmienne danych:

    CD2DTextFormat* m_pTextFormat;
    CD2DSolidColorBrush* m_pBlackBrush;
    CD2DLinearGradientBrush* m_pLinearGradientBrush;
    

    Zapisz plik i zamknij go.

  2. W folderze Pliki źródłowe otwórz plik MFCD2DWalkthroughView.cpp. W konstruktorze CMFCD2DWalkthroughView klasy dodaj następujący kod:

    // 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)));
    

    Zapisz plik i zamknij go.

Aby zmodyfikować szczotkę gradientu tak, aby zmieniała się odpowiednio po zmianie rozmiaru okna

  1. W menu Projekt wybierz pozycję Kreator klas.

  2. W Kreatorze klas MFC w obszarze Nazwa klasy wybierz pozycję CMFCD2DWalkthroughView.

  3. Na karcie Komunikaty w polu Komunikaty wybierz WM_SIZE pozycję, a następnie wybierz pozycję Dodaj procedurę obsługi. Ta akcja dodaje procedurę obsługi komunikatów OnSize CMFCD2DWalkthroughView do klasy .

  4. W polu Istniejące programy obsługi wybierz pozycję OnSize. Wybierz pozycję Edytuj kod , aby wyświetlić metodę CMFCD2DWalkthroughView::OnSize . Na końcu metody dodaj następujący kod.

    m_pLinearGradientBrush->SetEndPoint(CPoint(cx, cy));
    

    Zapisz plik i zamknij go.

Aby zaimplementować procedurę obsługi rysunku D2D

  1. W menu Projekt wybierz pozycję Kreator klas.

  2. W Kreatorze klas MFC w obszarze Nazwa klasy wybierz pozycję CMFCD2DWalkthroughView.

  3. Na karcie Komunikaty wybierz pozycję Dodaj wiadomość niestandardową.

  4. W oknie dialogowym Dodawanie niestandardowego komunikatu w niestandardowym komunikacie systemu Windows wpisz AFX_WM_DRAW2D. W polu Nazwa programu obsługi komunikatów wpisz OnDraw2D. Wybierz opcję Zarejestrowana wiadomość , a następnie wybierz przycisk OK. Ta akcja dodaje procedurę obsługi komunikatów dla komunikatu AFX_WM_DRAW2D do CMFCD2DWalkthroughView klasy .

  5. W polu Istniejące programy obsługi wybierz pozycję OnDraw2D. Wybierz pozycję Edytuj kod , aby wyświetlić metodę CMFCD2DWalkthroughView::OnDraw2D . Użyj tego kodu dla CMFCD2DWalkthroughView::OnDrawD2D metody :

    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;
    }
    

    Zapisz plik i zamknij go.

Aby zweryfikować wyniki

Skompiluj i uruchom aplikację. Powinien mieć prostokąt gradientu, który zmienia się podczas zmiany rozmiaru okna. Wartość "Hello World!" powinna być wyświetlana w środku prostokąta.

Zobacz też

Przewodniki