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
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.
Na caixa Nome, digite MFCD2DWalkthrough. Escolha OK.
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
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.
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
No menu Projeto, escolha Assistente de classe.
No Assistente de Classe MFC, em Nome de classe, selecione
CMFCD2DWalkthroughView
.Na guia Mensagens, na caixa Mensagens, selecione
WM_SIZE
e escolha Adicionar Manipulador. Essa ação adiciona o manipulador de mensagensOnSize
à classeCMFCD2DWalkthroughView
.Na caixa Manipuladores existentes, selecione
OnSize
. Escolha Editar Código para exibir o métodoCMFCD2DWalkthroughView::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
No menu Projeto, escolha Assistente de classe.
No Assistente de Classe MFC, em Nome de classe, selecione
CMFCD2DWalkthroughView
.Na guia Mensagens, escolha Adicionar Mensagem Personalizada.
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
.Na caixa Manipuladores existentes, selecione
OnDraw2D
. Escolha Editar Código para exibir o métodoCMFCD2DWalkthroughView::OnDraw2D
. Use este código para o métodoCMFCD2DWalkthroughView::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.