1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| Private Sub Image0_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lX1 As Long, lY1 As Long, lX2 As Long, lY2 As Long
Select Case stDessin
Case "13"
Select Case Button
Case vbKeyLButton ' bouton gauche
If oGdi Is Nothing Then Exit Sub
' Récupère le nom de la région sur laquelle on a cliqué
StMaRegion = oGdi.GetRegionXY(X, Y)
' Position et coordonnées de la région
If oGdi.GetRegionRect(StMaRegion, lX1, lY1, lX2, lY2) Then
imX = lX1
imY = lY1
End If
Trace un rectangle de la couleur du fond avec les coordonnées de la region
oGdi.DrawRectangle oGdi.PixelToPointsX(lX1), oGdi.PixelToPointsY(lY1), oGdi.PixelToPointsX(lX2), oGdi.PixelToPointsY(lY2) + 10, RGB(181, 255, 106), RGB(181, 255, 106), 1
oGdi.KeepImage 'Garde en mémoire l'image d'origine
'Le vbWhite dans la fonction drawimage enleve le contour blanc des images
oGdi.DrawImage StMaRegion, imX, imY, , , vbWhite, Gdi32SizeModeAutoSize, Gdi32AlignCenter, _
, True, StMaRegion, vbRed
' Affichage de l'image dans le contrôle
oGdi.RepaintControl Me.Image0, , , True
End Select
End sub
Private Sub Image0_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Case "12", "13"
Select Case Button
Case vbKeyLButton ' bouton gauche
oGdi.ResetImage
imX = oGdi.CtrlToImgX(X, Me.Image0)
imY = oGdi.CtrlToImgY(Y, Me.Image0)
Redessine limage avec les coordonnées de la région
oGdi.DrawImage StMaRegion, imX, imY, , , vbWhite, Gdi32SizeModeAutoSize, Gdi32AlignCenter, _
, True, StMaRegion, vbRed
oGdi.ImageListGetPixel StMaRegion, 1, 1
' Conserve l'image
' Affichage de l'image dans le contrôle
oGdi.FastRepaint Me.Image0
End Select
End sub |
Partager