GDI+

01/05/2009 - 02:40 por José Mª Toro Bermejo | Informe spam
Buenas noches a todos.

Estoy realizando una aplicación para dibujar líneas, puntos...

Para dibujar nuevas líneas utilizo un objeto PictureBox y cuando termino de
dibujarla quito el PictureBox y la pinto en el área cliente del control de
usuario. Cuando quiero pintar la segunda línea, tengo que refrescar el
PictureBox, lo que implica tener que volver a pintar lo que ya tenía en el
control de usuario. ¿Existe alguna manera de refrescar solo el PictureBox,
sin tener que volver a dibujar el área cliente del control de usuario?

Saludos.

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
01/05/2009 - 09:12 | Informe spam
"José Mª Toro Bermejo" wrote in message
news:
Estoy realizando una aplicación para dibujar líneas, puntos...

Para dibujar nuevas líneas utilizo un objeto PictureBox y cuando termino
de dibujarla quito el PictureBox y la pinto en el área cliente del control
de usuario. Cuando quiero pintar la segunda línea, tengo que refrescar el
PictureBox, lo que implica tener que volver a pintar lo que ya tenía en el
control de usuario. ¿Existe alguna manera de refrescar solo el PictureBox,
sin tener que volver a dibujar el área cliente del control de usuario?




No comprendo lo que estás haciendo. ¿Para qué usas un PictureBox?
Normalmente lo que se hace es que, en el evento Paint (o en un override del
OnPaint) del objeto donde quieres que finalmente aparezca el dibujo, se
utilizan las sentencias del GDI+ para pintar todo lo que se desee. Cada vez
que se invalida el área cliente, se vuelve a disparar autmáticamente el
Paint, y se repite todo el dibujo completo. No comprendo por qué estás
interponiendo un PictureBox, ni está nada claro cómo trasladas el contenido
del PictureBox al area cliente del control de usuario.
Respuesta Responder a este mensaje
#2 José Mª Toro Bermejo
01/05/2009 - 13:26 | Informe spam
Pido disculpas por no haberme explicado correctamente.

He creado varias clases que almacenan la información que se ha de dibujar
(rectángulos, líneas, puntos, polígonos...), y que son utilizada en el
evento Paint del Control.

Lo que estoy haciendo es un mapa, por lo que te hablo de miles de puntos y
líneas, por eso la idea de utilizar un PictureBox al crear nuevas líneas y
no tener que volver a dibujar el mapa por completo cuando refresque la nueva
línea que estoy creando.

Saludos.

"Alberto Poblacion"
escribió en el mensaje de noticias:
"José Mª Toro Bermejo" wrote in message
news:
Estoy realizando una aplicación para dibujar líneas, puntos...

Para dibujar nuevas líneas utilizo un objeto PictureBox y cuando termino
de dibujarla quito el PictureBox y la pinto en el área cliente del
control de usuario. Cuando quiero pintar la segunda línea, tengo que
refrescar el PictureBox, lo que implica tener que volver a pintar lo que
ya tenía en el control de usuario. ¿Existe alguna manera de refrescar
solo el PictureBox, sin tener que volver a dibujar el área cliente del
control de usuario?




No comprendo lo que estás haciendo. ¿Para qué usas un PictureBox?
Normalmente lo que se hace es que, en el evento Paint (o en un override
del OnPaint) del objeto donde quieres que finalmente aparezca el dibujo,
se utilizan las sentencias del GDI+ para pintar todo lo que se desee. Cada
vez que se invalida el área cliente, se vuelve a disparar autmáticamente
el Paint, y se repite todo el dibujo completo. No comprendo por qué estás
interponiendo un PictureBox, ni está nada claro cómo trasladas el
contenido del PictureBox al area cliente del control de usuario.

Respuesta Responder a este mensaje
#3 Alberto Poblacion
01/05/2009 - 13:45 | Informe spam
"José Mª Toro Bermejo" wrote in message
news:%23cnYx%
Lo que estoy haciendo es un mapa, por lo que te hablo de miles de puntos y
líneas, por eso la idea de utilizar un PictureBox al crear nuevas líneas y
no tener que volver a dibujar el mapa por completo cuando refresque la
nueva línea que estoy creando.



Si, pero ¿cómo? ¿Tiene el fondo transparente y se ve el mapa debajo? ¿O
es un picturebox oculto y luego copias el bitmap sobre el mapa? Pero esto no
tiene mucho sentido, para eso podría ser visible y usarlo directamente para
presentar el bitmap. Aparte de que es una operación bastante lenta.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida