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

IHM Discussion :

Bloquer le curseur de la souris dans une zone


Sujet :

IHM

  1. #1
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 150
    Points
    150
    Par défaut Bloquer le curseur de la souris dans une zone
    Salut

    J'ai un formulaire relativement petit, et je voudrais connaitre la méthode à appliquer pour empécher le curseur de la souris de sortir de ce formulaire.

    Par exemple, récupérer la position de la souris à chaque mouvement et à partir d'une condition vérifier si elle a dépassé la zone et si c'est le cas forcer le curseur à retourner dans la zone.

    Et également comment sur une perte de focus de ce formulaire obliger la remise en focus de ce dernier.

    Merci

  2. #2
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Pour la perte de focus il suffit de faire un setFocus sur un composant lors de l'évenement LostFocus du formulaire.

    Pour le mouvement de la souris tu devrait regarder autour de l'évenement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    les X et Y doivent indiquer la position de la souris, faut que tu vois ce que tu peut en faire
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  3. #3
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 150
    Points
    150
    Par défaut
    Le SetFocus marche bien, seulement la commande LostFocus n'ai pas appelé lorsqu'on minimise ou qu'on change de fenêtre, mais ce n'est pas grave, j'ai réglé le problème en passant par un timer. je te remercie.

    Pour la commande MouseMove, le X et le Y renvoient seulement les données de la position du curseur, donc pour les conditions c'est impécable, seulement on ne peut pas les forcer à mettre le curseur à une position de notre choix en leur mettant une valeur.

    Donc si quelqu'un a la relation qui permet de forcer la souris à se mettre dans une position.

  4. #4
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    J'ai jamais essayé de faire ça mais est ce que tu peut pas déclencher toi même l'action MouseMove à l'endroit que tu veut en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form_MouseMove(0, 0, 500, 500)
    par exemple??
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  5. #5
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 150
    Points
    150
    Par défaut
    Non, il ne veut pas du code.

  6. #6
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    slt,

    tu peux aussi essayer avec l'API clipcursor :
    http://support.microsoft.com/kb/q179192/

  7. #7
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 133
    Points : 150
    Points
    150
    Par défaut
    Merci ça fonctionne nikel

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 47
    Points : 37
    Points
    37
    Par défaut
    salut à tous,
    Je cherche à empêcher le curseur de sortir d'un formulaire. Pouvez vous nous écrire la solution ici ? car le lien ne marche plus.
    Merci d'avance.

  9. #9
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850
    Par défaut
    Bonsoir.

    https://support.microsoft.com/fr-fr/help/467674
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    Option Explicit
     
    Private Type RECT
    left As Integer
    top As Integer
    right As Integer
    bottom As Integer
    End Type
     
    Private Type POINT
    x As Long
    y As Long
    End Type
     
    Private Declare Sub ClipCursor Lib "user32" (lpRect As Any)
    Private Declare Sub GetClientRect Lib "user32" _
    (ByVal hWnd As Long, _
    lpRect As RECT)
    Private Declare Sub ClientToScreen Lib "user32" _
    (ByVal hWnd As Long, _
    lpPoint As POINT)
    Private Declare Sub OffsetRect Lib "user32" (lpRect As RECT, _
    ByVal x As Long, _
    ByVal y As Long)
     
    Private Sub Form_Load()
    Command1.Caption = "Limiter le mouvement du curseur"
    Command2.Caption = "Supprimer la limitation"
    End Sub
     
    Private Sub Command1_Click()
    'Limite le mouvement du curseur au périmètre de la feuille.
    Dim client As RECT
    Dim upperleft As POINT
     
    GetClientRect Me.hWnd, client
    upperleft.x = client.left
    upperleft.y = client.top
    ClientToScreen Me.hWnd, upperleft
    OffsetRect client, upperleft.x, upperleft.y
    ClipCursor client
    End Sub
     
    Private Sub Command2_Click()
    'Supprime les limites du curseur
    ClipCursor ByVal 0&
    End Sub
     
    Private Sub Form_Unload(Cancel As Integer)
    'Supprime les limites du curseur
    ClipCursor ByVal 0&
    End Sub
    Attention de bien mettre un bouton pour supprimer les limites du curseur,
    sinon, on ne peut vraiment pas sortir du formulaire.
    Cdlt

  10. #10
    Nouveau membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 47
    Points : 37
    Points
    37
    Par défaut
    Bonjour,
    Merci Thierry_PALLIER. Est ce que vous pouvez me donner le code en vb.net?
    Cdlt

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

Discussions similaires

  1. Détection curseur souris dans une zone donnée
    Par pitipilot dans le forum C#
    Réponses: 5
    Dernier message: 06/02/2015, 14h32
  2. Bloquer le curseur de la souris dans une zone
    Par ewp02 dans le forum Interfaces Graphiques
    Réponses: 0
    Dernier message: 25/10/2011, 15h43
  3. Placer le curseur lorqu'on clique dans une zone de texte
    Par la_chevre dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 17/08/2010, 14h15
  4. Réponses: 10
    Dernier message: 14/05/2006, 16h14
  5. Selection avec la souris dans une zone de texte
    Par GESCOM2000 dans le forum IHM
    Réponses: 8
    Dernier message: 11/02/2006, 10h12

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