Compartilhar via


Passo a passo: adicionando um objeto D2D a um projeto MFC

Este passo a passo ensina como adicionar um objeto Direct2D (D2D) básico a um projeto do Visual C++, da Biblioteca de Classes do Microsoft Foundation (MFC) e, em seguida, criar o projeto em um aplicativo que imprime "Olá, Mundo!" em um plano de fundo gradiente.

O passo a passo mostra como realizar essas tarefas:

  • Crie um aplicativo MFC.

  • Crie um pincel de cor sólida e um pincel de gradiente linear.

  • Modifique o pincel de gradiente para que ele seja alterado adequadamente quando a janela for redimensionada.

  • Implementar um manipulador de desenho D2D.

  • Verifique os resultados.

Observação

Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você tem e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Personalizando o IDE.

Pré-requisitos

Para concluir este passo a passo, você deve ter o Visual Studio instalado com o desenvolvimento da área de trabalho com carga de trabalho C++ e o MFC opcional do Visual C++ para o componente x86 e x64 .

Para criar um aplicativo MFC

  1. Use o Assistente de Aplicativo MFC para criar um aplicativo MFC. Consulte Passo a passo: usando os novos controles de shell do MFC para obter instruções sobre como abrir o assistente para sua versão do Visual Studio.

  2. Na caixa Nome , digite MFCD2DWalkthrough. Escolha OK.

  3. No Assistente de Aplicativo MFC, escolha Concluir sem alterar nenhuma configuração.

Para criar um pincel de cor sólida e um pincel de gradiente linear

  1. No Gerenciador de Soluções, no projeto MFCD2DWalkthrough , na pasta Arquivos de Cabeçalho , abra MFCD2DWalkthroughView.h. Adicione este código à CMFCD2DWalkthroughView classe para criar três variáveis de dados:

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

    Salve o arquivo e feche-o.

  2. Na pasta Arquivos de Origem , abra MFCD2DWalkthroughView.cpp. No construtor da CMFCD2DWalkthroughView classe, adicione este código:

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

    Salve o arquivo e feche-o.

Para modificar o pincel de gradiente para que ele seja alterado adequadamente quando a janela for redimensionada

  1. No menu Projeto , escolha Assistente de Classe.

  2. No Assistente de Classe MFC, em Nome da Classe, selecione CMFCD2DWalkthroughView.

  3. Na guia Mensagens , na caixa Mensagens , selecione WM_SIZE e escolha Adicionar Manipulador. Essa ação adiciona o OnSize manipulador de mensagens à CMFCD2DWalkthroughView classe.

  4. Na caixa Manipuladores existentes , selecione OnSize. Escolha Editar Código para exibir o CMFCD2DWalkthroughView::OnSize método. No final do método, adicione o código a seguir.

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

    Salve o arquivo e feche-o.

Para implementar um manipulador de desenho D2D

  1. No menu Projeto , escolha Assistente de Classe.

  2. No Assistente de Classe MFC, em Nome da Classe, selecione CMFCD2DWalkthroughView.

  3. Na guia Mensagens , escolha Adicionar Mensagem Personalizada.

  4. Na caixa de diálogo Adicionar Mensagem Personalizada , na caixa de mensagem personalizada do Windows, digiteAFX_WM_DRAW2D. Na caixa de nome do manipulador de mensagens , digite OnDraw2D. Selecione a opção Mensagem Registrada e escolha OK. Essa ação adiciona um manipulador de mensagens para a mensagem AFX_WM_DRAW2D à CMFCD2DWalkthroughView classe.

  5. Na caixa Manipuladores existentes , selecione OnDraw2D. Escolha Editar Código para exibir o CMFCD2DWalkthroughView::OnDraw2D método. Use este código para o CMFCD2DWalkthroughView::OnDrawD2D método:

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

    Salve o arquivo e feche-o.

Para verificar os resultados

Crie e execute o aplicativo. Ele deve ter um retângulo gradiente que muda quando você redimensiona a janela. "Olá, Mundo!" deve ser exibido no centro do retângulo.

Consulte também

Instruções passo a passo