Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tutorial se enseña a agregar un objeto Básico de Direct2D (D2D) a un proyecto de Visual C++, Biblioteca de clases de Microsoft Foundation (MFC) y, a continuación, a compilar el proyecto en una aplicación que imprime "Hello, World!" en un fondo degradado.
En el tutorial se muestra cómo realizar estas tareas:
Cree una aplicación MFC.
Cree un pincel de color sólido y un pincel de degradado lineal.
Modifique el pincel de degradado para que cambie adecuadamente cuando se cambie el tamaño de la ventana.
Implemente un controlador de dibujo D2D.
Compruebe los resultados.
Nota:
El equipo puede mostrar nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las instrucciones siguientes. La edición de Visual Studio que tiene y la configuración que usa determinan estos elementos. Para obtener más información, consulte Personalizando el IDE.
Prerrequisitos
Para completar este tutorial, debe tener Visual Studio instalado con la carga de trabajo Desarrollo de escritorio con C++ y el componente opcional MFC de Visual C++ para x86 y x64 .
Para crear una aplicación MFC
Use el Asistente para aplicaciones MFC para crear una aplicación MFC. Consulte Tutorial: Uso de los nuevos controles de shell de MFC para obtener instrucciones sobre cómo abrir el asistente para su versión de Visual Studio.
En el cuadro Nombre , escriba MFCD2DWalkthrough. Elija Aceptar.
En el Asistente para aplicaciones MFC, elija Finalizar sin cambiar ninguna configuración.
Para crear un pincel de color sólido y un pincel de degradado lineal
En el Explorador de soluciones, en el proyecto MFCD2DWalkthrough , en la carpeta Archivos de encabezado , abra MFCD2DWalkthroughView.h. Agregue este código a la
CMFCD2DWalkthroughViewclase para crear tres variables de datos:CD2DTextFormat* m_pTextFormat; CD2DSolidColorBrush* m_pBlackBrush; CD2DLinearGradientBrush* m_pLinearGradientBrush;Guarde el archivo y ciérrelo.
En la carpeta Archivos de origen, abra MFCD2DWalkthroughView.cpp. En el constructor de la
CMFCD2DWalkthroughViewclase , agregue 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)));Guarde el archivo y ciérrelo.
Para modificar el pincel de degradado para que cambie adecuadamente cuando se cambie el tamaño de la ventana
En el menú Proyecto , elija Asistente para clases.
En el Asistente para clases MFC, en Nombre de clase, seleccione
CMFCD2DWalkthroughView.En la pestaña Mensajes , en el cuadro Mensajes , seleccione
WM_SIZEy, a continuación, elija Agregar controlador. Esta acción agrega el controlador deOnSizemensajes a laCMFCD2DWalkthroughViewclase .En el cuadro Controladores existentes , seleccione
OnSize. Elija Editar código para mostrar elCMFCD2DWalkthroughView::OnSizemétodo. Al final del método, agregue el código siguiente.m_pLinearGradientBrush->SetEndPoint(CPoint(cx, cy));Guarde el archivo y ciérrelo.
Para implementar un controlador de dibujo D2D
En el menú Proyecto , elija Asistente para clases.
En el Asistente para clases MFC, en Nombre de clase, seleccione
CMFCD2DWalkthroughView.En la pestaña Mensajes , elija Agregar mensaje personalizado.
En el cuadro de diálogo Agregar mensaje personalizado , en el cuadro Mensaje personalizado de Windows , escriba AFX_WM_DRAW2D. En el cuadro Nombre del controlador de mensajes, escriba OnDraw2D. Seleccione la opción Mensaje registrado y, a continuación, elija Aceptar. Esta acción agrega un controlador de mensajes para el mensaje AFX_WM_DRAW2D a la
CMFCD2DWalkthroughViewclase .En el cuadro Controladores existentes , seleccione
OnDraw2D. Elija Editar código para mostrar elCMFCD2DWalkthroughView::OnDraw2Dmétodo. Use este código para elCMFCD2DWalkthroughView::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; }Guarde el archivo y ciérrelo.
Para comprobar los resultados
Compile y ejecute la aplicación. Debe tener un rectángulo de degradado que cambie al cambiar el tamaño de la ventana. "Hola mundo!" debe mostrarse en el centro del rectángulo.