Gestion d'une série de CEdit

Le
No_Name
Bonjour,

Dans une application MFC/C++ avec VS2005, j'ai créé une série de de
zones de saisie (CEdit) dont les ID se suivent.

Actuellement, pour passer de l'un à l'autre lorsque je saisis des
données, je dois utiliser la touche TAB.

Mon souhait serait de pouvoir saisir 2 chiffres dans chaque zone de
saisie, puis que le focus passe alors automatiquement sur la zone de
saisie suivante.

J'ai envisagé de créer une sous-classe de CEdit, puis de gérer moi même
le nombre de caractères saisis dans la fonction PreTranslateMessage de
ma classe, mais même comme cela, je ne vois pas comment je peux alors
donner le focus à la zone de saisie suivante. A moins de disposer
quelque part de la liste des ID etc.

Avant de me lancer dans de grands travaux, j'aimerais savoir si je ne
suis pas sur un mauvais chemin, et s'il n'y a pas une solution plus
simple et plus facile à mettre en oeuvre ?

Merci de vos conseils.
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
Christian ASTOR
Le #18581561
On 4 fév, 17:52, No_Name
Dans une application MFC/C++ avec VS2005, j'ai créé une série de de
zones de saisie (CEdit) dont les ID se suivent.
Actuellement, pour passer de l'un à l'autre lorsque je saisis des
données, je dois utiliser la touche TAB.

Mon souhait serait de pouvoir saisir 2 chiffres dans chaque zone de
saisie, puis que le focus passe alors automatiquement sur la zone de
saisie suivante.

J'ai envisagé de créer une sous-classe de CEdit, puis de gérer moi même
le nombre de caractères saisis dans la fonction PreTranslateMessage de
ma classe, mais même comme cela, je ne vois pas comment je peux alors
donner le focus à la zone de saisie suivante. A moins de disposer
quelque part de la liste des ID etc.

Avant de me lancer dans de grands travaux, j'aimerais savoir si je ne
suis pas sur un mauvais chemin, et s'il n'y a pas une solution plus
simple et plus facile à mettre en oeuvre ?



Pour passer le focus au contrôle suivant, ça peut se faire en postant
un WM_NEXTDLGCTL à la fenêtre parente.
Sinon, le C. Control "IP Address" fait la même chose que ton
traitement (4 Edit controls en child du contrôle principal), mais il
appelle SetFocus() sur WM_CHAR (en testant la position courante avec
EM_GETSEL), après avoir effectivement stocké les ID à la création.
Publicité
Poster une réponse
Anonyme