Passo a passo: Adicionando um objeto D2D com para um projeto MFC
Esta explicação passo a passo ensina como adicionar um Direct2D básica (D2D com) o objeto para um projeto Microsoft Foundation Class Library (MFC), de Visual C++ e compilar o projeto em um aplicativo que imprime "Hello, world" em uma cor de fundo.
O passo a passo mostra como realizar estas tarefas:
Crie um aplicativo do MFC.
Crie um pincel de cor sólida e um pincel de gradiente linear.
Modificar o pincel de gradiente para que ele mudará adequadamente quando a janela é redimensionada.
Implemente um manipulador de D2D com desenho.
Verificar 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ê possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações de Visual Studio. |
Pré-requisitos
Para concluir esta explicação passo a passo, você deve ter Visual Studio.
Para criar um aplicativo MFC
No menu File, aponte para New e clique Project.
No Novo projeto caixa de diálogo, no painel esquerdo, em Modelos instalados, expanda Visual C++ e selecione MFC.No painel central, selecione Aplicativo MFC.No nome , digite MFCD2DWalkthrough.Clique em OK.
No MFC Application Wizard, clique Concluir sem alterar as configurações.
Para criar um pincel de cor sólida e um pincel de gradiente linear
Em Solution Explorer, o MFCD2DWalkthrough projeto, o Arquivos de cabeçalho pasta, abrir MFCD2DWalkthroughView.h.Adicione o seguinte código para o 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.
No Arquivos de origem MFCD2DWalkthroughView.cpp abrir pasta.No construtor para o CMFCD2DWalkthroughView da classe, 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 modificar o pincel de gradiente para que ele mudará adequadamente quando a janela é redimensionada
Sobre o projeto menu, clique em Assistente de classe.
No Assistente de classe do MFC, em o nome da classe, selecione CMFCD2DWalkthroughView.
No mensagens guia, o mensagens caixa, selecione WM_SIZE e clique em Adicionar manipulador.Essa ação adiciona o OnSize manipulador de mensagem para o CMFCD2DWalkthroughView classe.
No existente manipuladores caixa, selecione OnSize.Clique em Editar código para exibir o CMFCD2DWalkthroughView::OnSize método.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 D2D com
Sobre o projeto menu, clique em Assistente de classe.
No Assistente de classe do MFC, em o nome da classe, selecione CMFCD2DWalkthroughView.
Sobre o mensagens , clique em Adicionar mensagem personalizada.
No Adicionar mensagem personalizada na caixa de Mensagem do Windows personalizada , digite AFX_WM_DRAW2D.No nome do manipulador de mensagem , digite OnDraw2D.Selecione o Mensagem registrado opção e, em seguida, clique em OK.Essa ação adiciona um manipulador de mensagem para o AFX_WM_DRAW2D mensagem para o CMFCD2DWalkthroughView classe.
No existente manipuladores caixa, selecione OnDraw2D.Clique em Editar código para exibir o CMFCD2DWalkthroughView::OnDraw2D método.Use o seguinte 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
- Criar e executar o aplicativo.Ele deve ter um retângulo de gradiente é alterado quando você redimensionar a janela."Hello World!" deve ser exibido no centro do retângulo.