Sdílet prostřednictvím


Návod: Přidání objektu D2D do projektu MFC

V tomto názorném postupu se naučíte, jak přidat základní objekt Direct2D (D2D) do projektu Visual C++, knihovny tříd Microsoft Foundation (MFC) a pak sestavit projekt do aplikace, která vytiskne text "Hello, World!" na pozadí přechodu.

Tento návod ukazuje, jak provádět tyto úlohy:

  • Vytvořte aplikaci MFC.

  • Vytvořte jednobarevný štětec a lineární přechodový štětec.

  • Upravte přechodový štětec tak, aby se při změně velikosti okna správně změnil.

  • Implementujte obslužnou rutinu pro kreslení D2D.

  • Ověřte výsledky.

Poznámka:

Počítač může v následujících pokynech zobrazit různé názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Edice sady Visual Studio, kterou máte, a nastavení, která používáte, určují tyto prvky. Další informace najdete v tématu Přizpůsobeníintegrovaného vývojového prostředí (IDE).

Požadavky

K dokončení tohoto názorného postupu musíte mít nainstalovaný Visual Studio s pracovním zatížením Vývoj desktopových aplikací pomocí C++ a volitelnou komponentou Visual C++ MFC pro x86 a x64.

Vytvoření aplikace MFC

  1. Pomocí Průvodce aplikací MFC vytvořte aplikaci MFC. Podívejte se na Návod: Použití nových ovládacích prvků prostředí MFC pro pokyny k tomu, jak otevřít průvodce pro vaši verzi služby Visual Studio.

  2. Do pole Název zadejte MFCD2DWalkthrough. Vyberte OK.

  3. V Průvodci aplikací MFC zvolte Dokončit beze změny nastavení.

Vytvoření jednobarevného štětce a lineárního štětce

  1. V Průzkumníku řešení v projektu MFCD2DWalkthrough ve složce Header Files otevřete MFCD2DWalkthroughView.h. Přidejte tento kód do CMFCD2DWalkthroughView třídy pro vytvoření tří datových proměnných:

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

    Uložte soubor a zavřete ho.

  2. Ve složce Zdrojové soubory otevřete MFCD2DWalkthroughView.cpp. Do konstruktoru CMFCD2DWalkthroughView pro třídu přidejte tento kód:

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

    Uložte soubor a zavřete ho.

Změnit přechodový štětec tak, aby se při změně velikosti okna správně přizpůsobil.

  1. V nabídce Projekt zvolte Průvodce třídami.

  2. V Průvodci třídou MFC v části Název třídy vyberte CMFCD2DWalkthroughView.

  3. Na kartě Zprávy, v okně Zprávy, vyberte WM_SIZE a poté zvolte Přidat zpracovatele. Tato akce přidá obslužnou rutinu zprávy OnSize do třídy CMFCD2DWalkthroughView.

  4. V poli Existující obslužné rutiny vyberte OnSize. Zvolte Upravit kód , aby se zobrazila CMFCD2DWalkthroughView::OnSize metoda. Na konec metody přidejte následující kód.

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

    Uložte soubor a zavřete ho.

Implementovat obslužnou rutinu pro D2D kreslení

  1. V nabídce Projekt zvolte Průvodce třídami.

  2. V Průvodci třídou MFC v části Název třídy vyberte CMFCD2DWalkthroughView.

  3. Na kartě Zprávy zvolte Přidat vlastní zprávu.

  4. V dialogovém okně Přidat vlastní zprávu do pole Vlastní zpráva systému Windows zadejte AFX_WM_DRAW2D. Do pole Název obslužné rutiny zprávy zadejte OnDraw2D. Vyberte možnost Registrovaná zpráva a pak zvolte OK. Tato akce přidá obslužnou rutinu zprávy AFX_WM_DRAW2D do třídy CMFCD2DWalkthroughView.

  5. V poli Existující obslužné rutiny vyberte OnDraw2D. Zvolte Upravit kód , aby se zobrazila CMFCD2DWalkthroughView::OnDraw2D metoda. Pro metodu CMFCD2DWalkthroughView::OnDrawD2D použijte tento kód:

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

    Uložte soubor a zavřete ho.

Ověření výsledků

Sestavte a spusťte aplikaci. Měl by mít přechodový obdélník, který se změní při změně velikosti okna. "Hello World!" by se měl zobrazit ve středu obdélníku.

Viz také

Průvodci