GNT sans publicité, site mobile, fonctionnalitées exclusives...

gestion clavier

Le
Marc
Bonjour à tous,
Je réalise en ce moment une application de dessin MDI avec gestion du
clavier.
Le problème est que je n'arrive pas à intercepter, dans la fenêtre fille,
les touches curseur (Keys.Right, Keys.Left) par contre les autres touches
fonctionnent parfaitement.
Apparemment ces touches curseurs agissent au niveau de la bascule entre les
différentes fenêtres fille.
Une idée ?
Marc
Lire les 2 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles TOURREAU
Le #12255871
Marc a exprimé avec précision :
Bonjour à tous,
Je réalise en ce moment une application de dessin MDI avec gestion du
clavier.
Le problème est que je n'arrive pas à intercepter, dans la fenêtre fille,
les touches curseur (Keys.Right, Keys.Left...) par contre les autres touches
fonctionnent parfaitement.
Apparemment ces touches curseurs agissent au niveau de la bascule entre les
différentes fenêtres fille.
Une idée ?
Marc




Substitue la fonction "ProcessCmdKey" de tel façon :

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (msg.WParam == LaValeurDeLaToucheGauche || ....)
{
FaireQqch();
return true;
}

return base.ProcessCmdKey(ref msg, keyData);
}

Lorsque tu appuies sur une touche du clavier, "ProcessCmdKey" est la
première fonction qui est appelé avant quel soit traité...
Si cette fonction renvoie false, la touche sera envoyé à diverses
évenement (KeyPress, KeyDown, ...etc) uniquement si celle-ci n'est pas
une touche de "commande" (Alt, Ctrl, ...etc).

Pour connaitre la valeur de la touche gauche ou droite lance dans un
premier temps ton programme avec :

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
MessageBox.Show(msg.WParam);
return base.ProcessCmdKey(ref msg, keyData);
}

Afin de trouver la valeur entière correspondante à (ou aux) touche(s)
qui t'interresse(nt).

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Marc
Le #12255841
Merci cela fonctionne correctement.
Marc.


"Gilles TOURREAU" wrote:

Marc a exprimé avec précision :
> Bonjour à tous,
> Je réalise en ce moment une application de dessin MDI avec gestion du
> clavier.
> Le problème est que je n'arrive pas à intercepter, dans la fenêtre fille,
> les touches curseur (Keys.Right, Keys.Left...) par contre les autres touches
> fonctionnent parfaitement.
> Apparemment ces touches curseurs agissent au niveau de la bascule entre les
> différentes fenêtres fille.
> Une idée ?
> Marc


Substitue la fonction "ProcessCmdKey" de tel façon :

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (msg.WParam == LaValeurDeLaToucheGauche || ....)
{
FaireQqch();
return true;
}

return base.ProcessCmdKey(ref msg, keyData);
}

Lorsque tu appuies sur une touche du clavier, "ProcessCmdKey" est la
première fonction qui est appelé avant quel soit traité...
Si cette fonction renvoie false, la touche sera envoyé à diverses
évenement (KeyPress, KeyDown, ...etc) uniquement si celle-ci n'est pas
une touche de "commande" (Alt, Ctrl, ...etc).

Pour connaitre la valeur de la touche gauche ou droite lance dans un
premier temps ton programme avec :

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
MessageBox.Show(msg.WParam);
return base.ProcessCmdKey(ref msg, keyData);
}

Afin de trouver la valeur entière correspondante à (ou aux) touche(s)
qui t'interresse(nt).

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr





Publicité
Suivre les réponses
Poster une réponse
Anonyme