VB6 Tracer le suivi de la souris ou ligne droite sur une forme

Lignes aléatoires
- Pour que la trace suive la souris, cliquer sur la forme, maintenir le bouton droit et déplacer.
- Relâcher pour terminer.
Lignes droites
- Pour tirer des lignes droites, cliquer sur la forme au point de départ et maintenir le bouton, déplacer la souris au point d'arrivée et relâcher le bouton.
Pour cette dernière fonction, déplacer le code comme indiqué en remarque.
Peut servir sur tout contrôle qui possède un hdc.
Option Explicit Const PS_SOLID = 0 Const Epp = 10 'épaisseur du trait Private Type POINTAPI X As Long Y As Long End Type Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long Private Declare Function CreatePen Lib "gdi32" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long Private Declare Function LineTo Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long Private Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, _ ByVal X As Long, ByVal Y As Long, lpPoint As Any) As Long Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) DeleteObject SelectObject(Me.hdc, CreatePen(PS_SOLID, Epp, RGB(0, 255, 0))) MoveToEx Me.hdc, X, Y, &H0 End Sub 'Mettre ce code dans Form_MouseUp pour une ligne droite 'sans la ligne >> If Button <> 1 Then Exit Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button <> 1 Then Exit Sub DeleteObject SelectObject(Me.hdc, CreatePen(PS_SOLID, Epp, RGB(0, 255, 0))) LineTo Me.hdc, X, Y Me.Refresh End Sub
Le code en soi n'a pas beaucoup d'intérêt, mais il permet de mettre en œuvre quelques API intéressantes.

Ce document intitulé « VB6 Tracer le suivi de la souris ou ligne droite sur une forme » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.