Partilhar 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 Visual C++, Microsoft Foundation Class Library (MFC) e, em seguida, compilar 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 uma brocha de cor única e uma brocha de gradiente linear.

  • Modifique o pincel de gradiente para que ele se adapte corretamente quando a janela for redimensionada.

  • Implemente um manipulador de desenho D2D.

  • Verifique os resultados.

Observação

Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da 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 completar este guia, deve ter o Visual Studio instalado com a carga de trabalho desenvolvimento de ambiente de trabalho com C++ e o componente opcional Visual C++ MFC para x86 e x64.

Para criar um aplicativo MFC

  1. Use o MFC Application Wizard para criar um aplicativo MFC. Consulte Passo a passo: Usando os novos controles de shell 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 MFC Application Wizard, escolha Concluir sem alterar nenhuma configuração.

Para criar uma escova de cor sólida e uma escova 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 código-fonte , 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 de modo que ele se ajuste 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. Esta 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 Mensagem Personalizada do Windows , digite AFX_WM_DRAW2D. Na caixa Nome do manipulador de mensagens , digite OnDraw2D. Selecione a opção Mensagem Registada e, em seguida, escolha OK. Esta 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

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

Ver também

Passo a passo