Compartilhar via


Instruções passo a passo: adicionando um objeto D2D a um projeto

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

Este guia passo a passo mostra como realizar essas tarefas:

  • Criar 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 diferentes nomes ou locais 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ê possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Personalizando o IDE.

Pré-requisitos

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

Para criar um aplicativo MFC

  1. Use o Assistente de Aplicativo MFC para criar um aplicativo MFC. Confira Guia passo a passo: usar os novos controles de shell do MFC para instruções sobre como abrir o assistente em 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. Em Gerenciador de Soluções, no projeto MFCD2DWalkthrough, na pasta Arquivos de Cabeçalho, abra MFCD2DWalkthroughView.h. Adicione esse código à classe CMFCD2DWalkthroughView 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 para a classe CMFCD2DWalkthroughView, 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 de classe, selecione CMFCD2DWalkthroughView.

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

  4. Na caixa Manipuladores existentes, selecione OnSize. Escolha Editar Código para exibir o método CMFCD2DWalkthroughView::OnSize. 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 de classe, selecione CMFCD2DWalkthroughView.

  3. Na guia Mensagens, escolha Adicionar Mensagem Personalizada.

  4. Na caixa de diálogo Adicionar Mensagem Personalizada, na caixa Mensagem Personalizada do Windows, digite AFX_WM_DRAW2D. Na caixa 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 à classe CMFCD2DWalkthroughView.

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

    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 de gradiente que é alterado quando você redimensiona a janela. "Olá, Mundo!" deve ser exibido no centro do retângulo.

Confira também

Passo a passo