Instruções passo a passo: adicionando um objeto D2D a um projeto
Este passo a passo ensina como adicionar um objeto básico do Visual C++, um projeto de Direct2D (D2D) da biblioteca de classes do Microsoft (MFC), e então constrói o projeto em um aplicativo que cópias “hello world”, em um plano de fundo da gradação.
O passo a passo mostra como executar essas tarefas:
Crie um aplicativo MFC.
Crie uma escova de cor sólida e uma escova de linear- gradação.
Modifique a escova da gradação de forma que se modifique adequadamente quando a janela é redimensionada.
Implementar um manipulador de desenho de D2D.
Verificar os resultados.
Dica
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ê possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Personalizando configurações de desenvolvimento no Visual Studio.
Pré-requisitos
Para concluir este passo a passo, você deve ter o Visual Studio.
Para criar um aplicativo de MFC
No menu Arquivo, aponte para Novo e clique em Projeto.
Na caixa de diálogo de Novo Projeto , no painel esquerdo em Modelos Instalados, expanda Visual C++ e selecione MFC. No painel central, Aplicativo do MFCselecione. Na caixa de Nome , digite MFCD2DWalkthrough. Clique em OK.
Em Assistente para Aplicativo do MFC, clique Concluir sem que nenhuma configurações.
Para criar uma escova de cor sólida e uma escova de linear- gradação
Em Gerenciador de Soluções, no projeto de MFCD2DWalkthrough , na pasta de Arquivos de Cabeçalho , abra MFCD2DWalkthroughView.h. Adicione o seguinte código na classe de 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 de Arquivos de Origem , abra MFCD2DWalkthroughView.cpp. No construtor da classe de CMFCD2DWalkthroughView , adicione o seguinte 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 alterar a escova da gradação de forma que se modifique adequadamente quando a janela é redimensionada
No menu de Projeto , clique em Assistente de classe.
Em Assistente de Classe MFC, em Nome da classe, CMFCD2DWalkthroughViewselecione.
Na guia de Mensagens , na caixa de Mensagens , WM_SIZE selecione e clique em Adicionar Manipulador. Essa ação adiciona o manipulador de mensagens de OnSize à classe de CMFCD2DWalkthroughView .
Na caixa de Manipuladores existentes , OnSizeselecione. Clique em Editar Código para exibir o método de CMFCD2DWalkthroughView::OnSize . No final do método, adicione o seguinte código.
m_pLinearGradientBrush->SetEndPoint(CPoint(cx, cy));
Salve o arquivo e feche-o.
Para implementar um manipulador de desenho de D2D
No menu de Projeto , clique em Assistente de classe.
Em Assistente de Classe MFC, em Nome da classe, CMFCD2DWalkthroughViewselecione.
Na guia de Mensagens , clique Adicionar Mensagem Personalizada.
Na caixa de diálogo de Adicionar Mensagem Personalizada , na caixa de Mensagem Personalizada do Windows , tipo AFX_WM_DRAW2D. Na caixa de Nome do Manipulador de Mensagens , digite OnDraw2D. Selecione a opção de Mensagem Registrada e clique em OK. Essa ação adiciona um manipulador da mensagem de AFX_WM_DRAW2D à classe de CMFCD2DWalkthroughView .
Na caixa de Manipuladores existentes , OnDraw2Dselecione. Clique em Editar Código para exibir o método de CMFCD2DWalkthroughView::OnDraw2D . Use o seguinte código para o método de 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
- Criar e executar o aplicativo. Deve ter um retângulo de gradação que altera quando você redimensionar a janela. “Hello world!” deve ser exibido no centro do retângulo.