Udostępnij za pośrednictwem


Instruktaż: Dodawanie obiektów D2D do projektu MFC

W tym instruktażu przedstawiono sposób dodawania Direct2D podstawowe (D2D) obiektu do programu Visual C++ projektu Microsoft Foundation klasy biblioteki (MFC) i następnie Skompiluj projekt w aplikacji, która drukuje "Hello, world" na gradientowe tła.

Instruktaż przedstawia sposób tych zadań:

  • Tworzenie aplikacji MFC.

  • Tworzenie pędzla kolorach i Pędzel gradientu liniowego.

  • Pędzel gradientu należy zmodyfikować, tak aby zmieni odpowiednio podczas zmiany rozmiaru okna.

  • Wdrożenie programu obsługi rysunku D2D.

  • Sprawdź, czy wyniki.

[!UWAGA]

Na danym komputerze mogą być używane inne nazwy lub lokalizacje pewnych elementów interfejsu użytkownika programu Visual Studio, które są używane w poniższych instrukcjach. Używana wersja programu Visual Studio oraz jej ustawienia określają te elementy. Aby uzyskać więcej informacji, zobacz Visual Studio, ustawienia.

Wymagania wstępne

Do przeprowadzenia tego instruktażu, musi mieć Visual Studio.

Aby utworzyć aplikację MFC

  1. Na pliku menu, wskaż Nowy i kliknij przycisk Projekt.

  2. W Nowy projekt okno dialogowe, w lewym okienku w obszarze Szablonów, rozwiń węzeł Visual C++ i zaznacz MFC.W środkowym okienku wybierz Aplikacja MFC.W Nazwa wpisz MFCD2DWalkthrough.Click OK.

  3. W Kreatora aplikacji MFC, kliknij Zakończ bez zmieniania żadnych ustawień.

Tworzenie pędzla kolorach i Pędzel gradient liniowy

  1. W Solution Explorer, MFCD2DWalkthrough projektu w Pliki nagłówków folderu, otwórz MFCD2DWalkthroughView.h.Dodaj następujący kod do CMFCD2DWalkthroughView klasy, aby utworzyć trzy zmienne danych.

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

    Zapisz plik i zamknij go.

  2. W Pliki źródłowe folderu, otwórz MFCD2DWalkthroughView.cpp.W konstruktorze dla 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ć gradient Pędzel zmieni odpowiednio podczas zmiany rozmiaru okna

  1. Na Projekt menu, kliknij Kreatora klasy.

  2. W Kreator klas MFC, w Nazwa klasy, wybierz opcję CMFCD2DWalkthroughView.

  3. Na wiadomości kartę w wiadomości wybierz pozycję WM_SIZE i kliknij przycisk Dodawanie obsługi.Spowoduje to dodanie OnSize obsługi wiadomości do CMFCD2DWalkthroughView klasy.

  4. W istniejące programy obsługi wybierz pozycję OnSize.Kliknij Edytuj kod do wyświetlania CMFCD2DWalkthroughView::OnSize metody.Na koniec metoda Dodaj następujący kod.

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

    Zapisz plik i zamknij go.

Aby zaimplementować obsługę rysunku programu D2D

  1. Na Projekt menu, kliknij Kreatora klasy.

  2. W Kreator klas MFC, w Nazwa klasy, wybierz opcję CMFCD2DWalkthroughView.

  3. Na wiadomości , kliknij pozycję Dodać niestandardowy komunikat.

  4. W Dodać niestandardowy komunikat dialogowe, w Niestandardowy komunikat systemu Windows wpisz AFX_WM_DRAW2D.W Nazwa programu obsługi wiadomości wpisz OnDraw2D.Wybierz Zarejestrowany komunikat opcji, a następnie kliknij przycisk OK.Spowoduje to dodanie obsługi wiadomości dla AFX_WM_DRAW2D wiadomości do CMFCD2DWalkthroughView klasy.

  5. W istniejące programy obsługi wybierz pozycję OnDraw2D.Kliknij Edytuj kod do wyświetlania CMFCD2DWalkthroughView::OnDraw2D metody.Użyć następującego 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 sprawdzić wyniki

  • Tworzenie i uruchamianie aplikacji.Powinien on gradientu prostokąt, który zmienia się przy zmianie rozmiaru okna."Hello World!", powinien zostać wyświetlony na środku prostokąta.

Zobacz też

Inne zasoby

Instruktaże (MFC)