PDA

Ver la Versión Completa : Sobreescribir método Paint y saber coordenadas a refrescar


Lord Delfos
04-03-2008, 14:26:52
Bueno, no sé si es el foro correcto, pero...

¿Cómo están? Tengo una dudilla bastante espinosa.

Estoy haciendo un componente. Como tiene que dibujar cosas propias en su superficie estoy sobreescribiendo el método Paint. El problema es que no sé qué parte de todo el control (que puede ser muy extenso) se tendría que dibujar.

Es decir, si mi control mide 500 píxeles de largo y tengo que refrescar los primeros 10, no tengo manera de saberlo y tengo que dibujar todo el control en sus 500 píxeles.

Estoy casi seguro que alguna vez había leído algo al respecto, pero no puedo encontrar nada.

Si alguien sabe, agradecería alguna punta.

Saludos.

seoane
04-03-2008, 14:42:03
Prueba con la propiedad "ClipRect" del Canvas, durante el evento OnPaint contiene las coordenadas del rectángulo que hay que redibujar

cHackAll
04-03-2008, 14:49:36
No estoy muy seguro de que clase deberías heredar (la mas adecuada), sin ambargo necesitas analizar el mensaje WM_PAINT, una vez capturado dicho mensaje necesitas utilizar la API BeginPaint, la cual te va a retornar una estructura que contiene una variable llamada rcPaint la cual especifíca las coordenadas a ser pintadas.

Specifies a RECT structure that specifies the upper left and lower right corners of the rectangle in which the painting is requested.

La forma correcta de utilizar dicho mensaje es mediante la API InvalidateRect

Saludos

Lord Delfos
05-03-2008, 13:48:28
Gracias, muchachos.

Una vez más estoy encaminado...

Un abrazo.