'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.