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