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

Dernière mise à jour le 13 novembre 2009 à 14:13 par marlalapocket
Publié par lermite222

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.
Meilleures réponses pour « VB6 Tracer le suivi de la souris ou ligne droite sur une forme » dans :
VB6/VBA Transformer nombre en texte VoirIntroduction Préliminaires VB6 Dans le module de la forme Dans Module1 Introduction La fonction peut transformer des nombres de l'unité jusqu'à 999 tera. Prend en compte la syntaxe pour le français de France, de Belgique et de...
[Blogs] Choisir un hébergeur de blog et créer son blog VoirQu'est-ce qu'un blog ? Un « blog » (en français blogue, journal web ou carnet web) est un site internet personnel permettant à un internaute de publier facilement et simplement des informations en ligne sous forme de journal. Le terme « blog » est...
Diffuser de la musique sur son site VoirIntro I. Dewplayer II. XSPF Web Music Player III. Zanorg Radio IV. MyFlashFetish Compléments Intro Vous voulez que votre site web joue de la musique pour vos visiteurs ; et vous voulez trouver un moyen pour faire cela sur tous les...
Blog (Blogue ou Weblog) VoirBlog Un « blog » (en français blogue, journal web ou carnet web) est un site internet personnel permettant à un internaute de publier facilement et simplement des informations en ligne sous forme de journal. Le terme «blog» est la contraction de...