C/Visual C - redraw

 
Vista:

redraw

Publicado por guillermin (5 intervenciones) el 29/03/2007 20:49:21
hola
a todos gracias por las respuestas a Nelek y fernando he revisado la web que me dio fernando y he logrado hacer funcionar el customcontrol con una clase que implemente, el problema ahora es el siguiente: la clase tiene varias propiedades y metodos( como en visual basic o deveria decir atributos y funciones :) ) y una de ellas controla controla los mensajes que llegan a esa ventana (customcontrol) la funcion es estatica ahi va la pregunta ¿que sucederia si la funcion que controla los mensajes no fuese estatica? y otra utilizo una funcion que controla el pintado de la ventana pero cuando creo un control digamos el control EDIT dentro de la ventana se dibuja sobre ella he probado con la funcion SetWindowPos(.....) para ponerla delante pero solo funciona una vez osea la primera cuando se crea el dialogo esta funcion la pongo simepre despues del repintado de la ventana por las sugerencias muy agradecido estare ya toy avlando como yoda
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

RE:redraw

Publicado por Nelek (816 intervenciones) el 30/03/2007 07:52:31
Hola de nuevo,

Has probado a emular el funcionamiento del evento/mensaje OnDraw () / WM_PAINT??

Primero pones todo lo que sea de dibujo y luego anyades los elementos. Ademas, antes de hacer un UpdateWindow () es bueno hacer un Invalidate ()

Asi aseguras que quitas los contenidos viejos de la ventana antes de meterlos de nuevo.

Para mis graficas yo lo uso asi. Y si algo se sube encima de otra cosa, les cambio el orden de pintado en dicha funcion.

Ejemplo:

void CMyView::OnDraw(CDC* pDC)
{
//Aqui es donde meto el titulo de la ventana, por lo que despues de la creacion
//borro su contenido pa que este "virgen" y disponible pa otras ventanas.
pDoc->m_szNewFrameName = "";
//En la primera vez: dibujo la superficie de la grafica, establezco los combobox,
//les meto datos...
if (m_bJustOpened)
{
InitializeView ();
DrawViewElements ();
m_bJustOpened = FALSE;
}
//La grafica la redibujo cada vez que se modifica algo por algun lado a la vez que
//actualizo las etiquetas
else
{
DrawGraphic ();
SetLabels ();
}
return;
}
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

RE:redraw

Publicado por guillermin (5 intervenciones) el 30/03/2007 22:08:33
hola Nelek bueno toy trabajando puro win32 pero voy a probar enviando el mensaje WM_PAINT con la funcion SendMessage despues del pintado del customcontrol espero que funcione gracias por la sugerencia ya te contare que tal me fue
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