Visual Basic - PictureBox

Life is soft - evento anual de software empresarial
 
Vista:

PictureBox

Publicado por Diego (1 intervención) el 10/03/2007 23:13:38
Tengo un Picture Box con las siguientes caracteristicas:
7200 Height
9600 Width

quiero hacerle zoom por medio de un boton (+), aumentarle 1000 Twips mas al Height y al Width y reducirle 1000 al left y al top y con el boton(-) hacer lo contrario. como le hago ???, esque ya se hacerlo con un control image dentro de un picture box, pero necesito hacerlo con un picturebox, gracias por su ayuda.
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:PictureBox

Publicado por Benjo (679 intervenciones) el 12/03/2007 04:05:28
'Deberías pegar este codigo en un Modulo BAS
Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Private Declare Function BitBlt& Lib "gdi32" (ByVal hDestDC&, ByVal x&, ByVal Y&, ByVal nWidth&, ByVal nHeight&, ByVal hSrcDC&, ByVal xSrc&, ByVal ySrc&, ByVal dwRop&)

Private Const SRCAND = &H8800C6 ' (DWORD) dest = source AND dest
Private Const SRCCOPY = &HCC0020 ' (DWORD) dest = source
Private Const SRCINVERT = &H660046 ' (DWORD) dest = source XOR dest

Public Sub StretchBitMap(hDestDC As Long, lDestX As Long, lDestY As Long, lDestW As Long, lDestH As Long, hSourceDC As Long, lSourceW As Long, lSourceH As Long)
'Esto estira el Bitmap de Origen

'Si lDestW o lDestH son mayores que el tamaño real del bitmap , se estira
'Si es menor , el bitmap se achica
Call StretchBlt(hDestDC, lDestX, lDestY, lDestW, lDestH, hSourceDC, 0, 0, lSourceW, lSourceH, SRCCOPY)
End Sub

'en el form colocás un PictureBox con una imagen x , llamado picSource
' y copias este codigo. El PIctueBox, debería ser AutoRedrawn True

'Este ejemplo estira la imagen el doble del Original
Private Sub Bitmap_Stretched()
StretchBitMap Me.hdc, lLeft / 2, lTop / 2, lWidth * 2, lHeight * 2, picSource.hdc, lWidth, lHeight
End Sub

'Este ejemplo achica la imagen el doble del Original

Private Sub Bitmap_shrink()
StretchBitMap Me.hdc, lLeft + lWidth / 2, lTop + lHeight / 2, lWidth / 2, lHeight / 2, picSource.hdc, lWidth, lHeight
Edn Sub
Obviamente, luego tendrás que trabajar con porcentajes, para hacer tus Zoom personales, pero ya sabrás como hacerlo

Espero que el ejemplo te sirva.
Suerte.
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