Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/04/2011, 18:18
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Problemas con Picturebox

No me paro a mirarlo, pero imagino que si sirve, el método de truskyvb será más completo que el mio.
Sin embargo para solo mostrar imagenes stretchadas en picturebox mi sistema es algo más cómodo.

Se usa asi:
Una vez cargada la imagen en el picture (Picture1)...
StretcheaPictureBox Picture1

Código vb:
Ver original
  1. Sub StretcheaPictureBox(ControlPictureBox As PictureBox)
  2.   ' ESTA SUB NO SE PUEDE LLAMAR DESDE UN EVENTO RESIZE O NO SE DEJARÁ ELIMINAR EL PICTEMPORAL
  3.  Dim PicTemp As VB.PictureBox
  4.   On Local Error Resume Next
  5.   Set PicTemp = ControlPictureBox.Container.Controls.Add("VB.PictureBox", "PicTempStretcheaPictureBox", ControlPictureBox.Container)
  6.   PicTemp.AutoSize = True
  7.   PicTemp.Picture = ControlPictureBox.Picture
  8.   ControlPictureBox.AutoRedraw = True
  9.   ControlPictureBox.PaintPicture PicTemp.Picture, 0, 0, ControlPictureBox.ScaleWidth, ControlPictureBox.ScaleHeight, _
  10.   0, 0, PicTemp.ScaleWidth, PicTemp.ScaleHeight
  11.  
  12.   ' ESTA SUB NO SE PUEDE LLAMAR DESDE UN EVENTO RESIZE O NO SE DEJARÁ ELIMINAR EL PICTEMPORAL (AQUI)
  13.  ControlPictureBox.Container.Controls.Remove ("PicTempStretcheaPictureBox")
  14. End Sub
Como podeis leer, esta sub no se debe llamar desde el evento resize del form. Si tienes que resizar y "re-stretchear" los pictures al cambiar de tamaño el formulario, pon un timer que los stretchee y lo activas al finalizar el evento resize para que se haga despues de salir de el.

Saludos
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!