Visual C++ .NET - OnDraw

 
Vista:

OnDraw

Publicado por Rommel (1 intervención) el 29/10/2006 23:11:17
Buen dia, soy principiante en el Visual C, pues quisiera saber como puedo dibujar en la funcion OnDraw a partir de la llamada de un Boton por ejemplo?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Dibujar en la función OnDraw desde un botón

Publicado por Alejandro (265 intervenciones) el 30/01/2024 00:05:31
Rommel, en el entorno de desarrollo Visual C++, si estás trabajando en una aplicación MFC (Microsoft Foundation Classes) basada en Documento/Vista, la función `OnDraw` generalmente se utiliza para dibujar en la vista de la aplicación.

Si deseas forzar un redibujo desde un botón, puedes hacer uso de la función `Invalidate` en la vista. Aquí hay un ejemplo básico:

Supongamos que tienes una clase de vista derivada de `CView` y tienes un botón en tu interfaz de usuario.

1. En tu clase de vista (`MyView`), asegúrate de tener una función `OnDraw` similar a la siguiente:

1
2
3
4
5
void MyView::OnDraw(CDC* pDC)
{
    // Código de dibujo aquí
    pDC->TextOutW(10, 10, L"Ejemplo de dibujo desde OnDraw");
}

2. En tu clase de vista, implementa el controlador de mensajes para el botón. Puedes hacerlo a través de Class Wizard o manualmente. Si decides hacerlo manualmente, puedes agregar algo como lo siguiente en tu clase de vista (en MyView.h):

1
afx_msg void OnBnClickedMiBoton();

3. En la implementación de tu clase de vista (en MyView.cpp), agrega el siguiente código:

1
2
3
4
5
6
7
8
9
10
BEGIN_MESSAGE_MAP(MyView, CView)
    // ... Otros mensajes de mapa
    ON_BN_CLICKED(IDC_MI_BOTON, &MyView::OnBnClickedMiBoton)
END_MESSAGE_MAP()
 
void MyView::OnBnClickedMiBoton()
{
    // Llama a Invalidate para forzar el redibujo
    Invalidate();
}

Asegúrate de reemplazar `IDC_MI_BOTON` con el ID real de tu botón.

Este ejemplo es básico y podría necesitar ajustes dependiendo de cómo estés organizando tu aplicación. Si estás utilizando un modelo de documento/vista más complejo, es posible que necesites realizar algunas adaptaciones adicionales.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar