Zoom sur une image

Contenu du snippet

Ce code est un zoom tout simple sans prétention en utilisant l'API StretchBlt

Pour faire un dézoom il faut juste changer le signe + en -

Source / Exemple :


Const ScrCopy = &HCC0020

Private 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

'DrawSpace est un PictureBox avec AutoSize à False
Private Sub CmdZoom_Click()
    Dim l As Long
    l = StretchBlt(DrawSpace.hdc, 0, 0, DrawSpace.ScaleWidth + 10, DrawSpace.ScaleHeight + 10, DrawSpace.hdc, 0, 0, DrawSpace.ScaleWidth, DrawSpace.ScaleHeight, ScrCopy)
    DrawSpace.Refresh
    Debug.Print l
End Sub

Private Sub CmdDeZoom_Click()
    Dim l As Long
    l = StretchBlt(DrawSpace.hdc, 0, 0, DrawSpace.ScaleWidth - 10, DrawSpace.ScaleHeight - 10, DrawSpace.hdc, 0, 0, DrawSpace.ScaleWidth, DrawSpace.ScaleHeight, ScrCopy)
    DrawSpace.Refresh
    Debug.Print l
End Sub

Conclusion :


Voilà c'est tout... c'est pas très compliqué...

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.