La Web del Programador: Comunidad de Programadores
 
    Pregunta:  2707 - COMO GRABAR LA IMAGEN DE UN PICTURE BOX QUE CONTIENE LABELS
Autor:  Clemete Sanchez
Necesito grabar sin verse por pantalla (sin foco y por debajo)un picturebox, el cual contiene varias labels y otro picturebox dentro de él.
Cuando utilizo la función SAVEPICTURE, se graba vacío, únicamente el fondo sin los controles ni la otra imagen .No sé si esto es posible(soy novato) o no lo soporta el control picturebox. Uso el Visual basic 5 SP3.
Hay alguna otra forma de hacerlo???
Gracias

  Respuesta:  hernan casadesus
Hola,

A ver si entiendo tu problema??

Tenes un objeto picturebox que hace de contenedor de otros objetos, y queres guardar al disco la imagen completa con controles y todo??

Si es asi, esto talvez te sirva.

Cuando haces lo que me decis, lo que haces es convertir el pg en un contenedor, y al guardar la imagen al disco, no estas guardando lo que contiene, sino la imagen en si, que no existe.

O sea, para poder guardarlo en el disco tenes que crear esa imagen.

La mejor forma para hacerlo, seria recorrer uno a uno los controles que se encuentran dentro del pg,
extraer sus datos de posicion(left,top, height,width) y copiar su contenido a la imagen del pg de fondo. Para eso tenemos que:

en los controles label quedaria algo asi
pgfondo.currentx=label.left
pgfondo.currenty=label.top
set pgfondo.font=label.font
pgfondo.print label.caption

y para los picterbox
pgfondo.PaintPicture pg.Picture, pg.Left, pg.Top

Espero te sirva, si no, mandame un mail, y veo que puedo hacer.