IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

[VB.net 2005] Capture de la souris


Sujet :

Dotnet

  1. #1
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 298
    Points : 156
    Points
    156
    Par défaut [VB.net 2005] Capture de la souris
    Bonjour à tous,

    Sur une form, j'ai disposé un panel. Ce panel va contenir X panels dynamiquements créés.

    Grâce aux évènements mouseMove de mon panel de base, je capte les mouvements de la souris.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
      Private Sub pnlCompactus_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles pnlCompactus.MouseMove
     
            If isKeyDown Then
     
                Dim DeltaX As Integer = (m_PanStartPoint.X - e.X)
                Dim DeltaY As Integer = (m_PanStartPoint.Y - e.Y)
     
                pnlContainer.AutoScrollPosition = _
                New Drawing.Point((DeltaX - pnlContainer.AutoScrollPosition.X), _
                (DeltaY - pnlContainer.AutoScrollPosition.Y))
     
            End If
     
        End Sub
        Private Sub frmTestGraphique_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
     
            If e.KeyCode = Keys.Menu Then
     
                m_PanStartPoint = pnlCompactus.PointToClient(Cursor.Position)
                isKeyDown = True
     
            End If
     
        End Sub
        Private Sub frmTestGraphique_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
     
            If e.KeyCode = Keys.Menu Then
     
                m_PanStartPoint = Nothing
                isKeyDown = False
     
            End If
     
        End Sub
    Donc lorsque l'utilisateur maintient la touche ALT enfoncée et déplace la souris, cela à pour effet de déplacer les scroll du panel.

    La ou j'ai un problème, c'est que cet event n'est pas catché sur les panel ajoutés dynamiquement dans mon panel de base.
    Ce qui rend le déplacement surperflu car il faut absolument garder las ouris dans la zone panel non recouverte.

    Est-il possible de catché l'event mouseMove au dessus de tout ET MEME en dehors de ma form?
    Le but est de faire un déplacement similaire à celui dans Photoshop (barre d'espace + mouseMove)

    L'idéal serait de capter le mouvement au niveau OS non?

    Merci d'avance.

  2. #2
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 298
    Points : 156
    Points
    156
    Par défaut
    Petit UP.

    Je cherche donc le moyen de capter un mouseMove au niveau de l'OS ou de l'appli au minimum. Au niveau de la form çà ne me convient pas...

    Merci d'avance pour toute info.

  3. #3
    AP
    AP est déconnecté
    Membre confirmé
    Avatar de AP
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 480
    Points : 538
    Points
    538
    Par défaut
    Un peu de lecture sur les hook (c'est comme cela que cela s'appelle)
    http://msdn.microsoft.com/msdnmag/is...0/CuttingEdge/
    ainsi qu'un peu de code:
    http://www.colinneller.com/blog/Perm...e5918a39c.aspx

  4. #4
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 298
    Points : 156
    Points
    156
    Par défaut
    Merci poru ta réponse c'est exactement ce qu'il me fallait.
    Plus qu'à gèrer çà proprement pour éviter les runtime exception.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Clique droit de la souris VB.Net 2005
    Par badrel dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/01/2009, 17h07
  2. Capturer la molette souris en plein écran
    Par Marekh dans le forum DirectX
    Réponses: 3
    Dernier message: 07/06/2005, 14h20
  3. DX 9 et visual.net 2005 ?
    Par ilimo dans le forum DirectX
    Réponses: 1
    Dernier message: 27/07/2004, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo