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 štětec s plnou barvou 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 výkresu D2D.

  • Ověřte výsledky.

Poznámka

Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení integrovaného vývojového prostředí.

Požadavky

K dokončení tohoto názorného postupu musíte mít nainstalovanou sadu Visual Studio s vývojem desktopových aplikací s úlohou C++ a volitelnou komponentou MFC jazyka Visual C++ pro komponentu x86 a x64.

Vytvoření aplikace MFC

  1. Pomocí Průvodce aplikací MFC vytvořte aplikaci MFC. Viz Návod: Použití nových ovládacích prvků prostředí MFC pro pokyny k otevření průvodce pro vaši verzi sady 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í štětce s plnou barvou a lineárního přechodového štětce

  1. V Průzkumník ř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.

Úprava přechodového štětce tak, aby se při změně velikosti okna správně změnila.

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

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

  3. On the Messages tab, in the Messages box, select WM_SIZE and then choose Add Handler. Tato akce přidá obslužnou rutinu OnSizeCMFCD2DWalkthroughView zprávy do třídy.

  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.

Implementace obslužné rutiny výkresu D2D

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

  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 pro AFX_WM_DRAW2D zprávu do CMFCD2DWalkthroughView třídy.

  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é

Návody