Udostępnij za pośrednictwem


Wskazówki: dodawanie obiektu D2D do projektu MFC

W tym instruktażu uczy, jak dodać podstawowe Direct2D (D2D) obiektu dla języka Visual C++ projektu Fundacji klasy biblioteki MFC (Microsoft), a następnie zbudować projektu do aplikacji, która drukuje "Witaj, świecie" na tło gradientowe.

Instruktaż pokazuj, jak można wykonywać następujące zadania:

  • Tworzenie aplikacji MFC.

  • Tworzenie pędzla stałe koloru i gradientu liniowego pędzla.

  • Modyfikowanie pędzla gradientowego, tak że zmieni się odpowiednio podczas zmiany rozmiaru okna.

  • Wdrożenie programu obsługi rysunek 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 Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.

Wymagania wstępne

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

Do tworzenia aplikacji MFC

  1. W menu Plik, wskaż Nowy i kliknij przycisk Projekt.

  2. W Nowy projekt okno dialogowe, w lewym okienku w obszarze Zainstalowane szablony, rozwiń Visual C++ , a następnie wybierz MFC.W środkowym okienku wybierz opcję Aplikacja MFC.W Nazwa wpisz MFCD2DWalkthrough.Kliknij przycisk OK.

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

Aby utworzyć pędzla jednolitych kolorach i Pędzel gradient liniowy

  1. W Solution Explorer, w MFCD2DWalkthrough projektu w Pliki nagłówków folder, otwórz MFCD2DWalkthroughView.h.Dodaj następujący kod, aby 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 folder, otwórz MFCD2DWalkthroughView.cpp.W Konstruktorze dla CMFCD2DWalkthroughView klasę, 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ędzla, tak aby zmieni się odpowiednio podczas zmiany rozmiaru okna

  1. Na Projekt menu, kliknij przycisk Kreator klas.

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

  3. Na wiadomości kartę w wiadomości wybierz opcję 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 opcję OnSize.Kliknij przycisk 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 przycisk Kreator klas.

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

  3. Na wiadomości kliknij przycisk Dodać niestandardowy komunikat.

  4. W Dodać niestandardowy komunikat dialogowym Niestandardowych komunikatów 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 opcję OnDraw2D.Kliknij przycisk Edytuj kod do wyświetlania CMFCD2DWalkthroughView::OnDraw2D metody.Użyj 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.Rozdrabniacz powinien posiadać prostokąt gradientu, który zmienia się przy zmianie rozmiaru okna. "Hello World!" powinny być wyświetlane w środku prostokąta.

Zobacz też

Inne zasoby

Wskazówki (MFC)