Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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
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.
Na caixa Nome , digite MFCD2DWalkthrough. Escolha OK.
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
No Gerenciador de Soluções, no projeto MFCD2DWalkthrough , na pasta Arquivos de Cabeçalho , abra MFCD2DWalkthroughView.h. Adicione este código à
CMFCD2DWalkthroughViewclasse 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 código-fonte , abra MFCD2DWalkthroughView.cpp. No construtor da
CMFCD2DWalkthroughViewclasse, 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
No menu Projeto , escolha Assistente de classe.
No Assistente de classe MFC, em Nome da classe, selecione
CMFCD2DWalkthroughView.Na guia Mensagens , na caixa Mensagens , selecione
WM_SIZEe escolha Adicionar manipulador. Esta ação adiciona oOnSizemanipulador de mensagens àCMFCD2DWalkthroughViewclasse.Na caixa Manipuladores existentes , selecione
OnSize. Escolha Editar código para exibir oCMFCD2DWalkthroughView::OnSizemé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
No menu Projeto , escolha Assistente de classe.
No Assistente de classe MFC, em Nome da 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 Registada e, em seguida, escolha OK. Esta ação adiciona um manipulador de mensagens para a mensagem AFX_WM_DRAW2D à
CMFCD2DWalkthroughViewclasse.Na caixa Manipuladores existentes , selecione
OnDraw2D. Escolha Editar código para exibir oCMFCD2DWalkthroughView::OnDraw2Dmétodo. Use este código para oCMFCD2DWalkthroughView::OnDrawD2Dmé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.