Comment changer le focus d'un edit Text a un autre [Résolu]

Signaler
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014
-
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014
-
Bonjour,

je debute en asm, et j'utilise RadAsm pour developper une application de gestion de fichier patients.
j'utilise plusieurs edit box / edit text; mais j'arrive pas a intersepter la touche entree/retur pour le focus entre les edit text.
je keydown ne reponds pas, j'ai essayéle wm_focus, mais j'rrive pas a controler.
j'ai essayé la sousclass, mais sa me donne juste le return de la premiere editText...
alors je bloque, si quelcun peut m'aider, ou me donner un petit exemple je serai reconnaissant
Merci
--

5 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
21
Si fenetre mere est une DIALOG:

Focus sur un controle:
PostMessage(hdlg, WM_NEXTDLGCTL, (WPARAM) hCtrl, 1);
PostMessage(hdlg, WM_NEXTDLGCTL, 0, 0); // next ctrl
PostMessage(hdlg, WM_NEXTDLGCTL, 1, 0); // prev ctrl

ciao...
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014

merci pour la réponse; mais je debute, alors essai de me dire impeut plus stp
j'aimerai savoir où inserer les postmessage; et comment savoir que j'ateint le control que je veux.
esquil ya un petit exemple

Merci pour l'aide
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014

En fin je croix avoir compris et trouvé
.ELSEIF eax == WM_COMMAND
mov eax, wParam

.if((wParam)==IDOK)
invoke PostMessage,hWnd, WM_NEXTDLGCTL, 0, 0; //permetde naviquer entre les edit control

.endif

Merci beaucoup pour l'aide BruNews
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014

vette methode n'est bien qui s'il ya que des edit controls;
mais je trouve un probleme quand j'ai des bouton, et listbox avec...
es quil ya pas une autre solution??
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
21
Sur une DIALOG,

le message WM_NEXTDLGCTL fonctionne pour tout ctrl acceptant le focus, que soit bouton ou autre.

Autre sujet:
Tu dis débuter en ASM, en ce cas laisse tomber cette syntaxe de pseudo ASM qui ne t'apprendra strictement rien. Soit tu fais du vrai ASM en vue d'optimisation maximale, soit tu écris en C.

ciao...
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014

j'ai deja realisé des application en c, delphi, c++ et dernierement java.
c'est juste que je me met a l'assembleur pour comprendre encor mieux l'iformatique...
stp, donnes moi un bout de code comprehensible pour un novice qcomme moi, merci.
je me reexlique.
j'ai plusieurs edit boxes; et 2 bouton, je veux que quand j'apuis sur return sa declanche un evenement (ex: si le champ est vide ne rien faire sinon passer au prochan edit controle)
Help please
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
21
Pour la suite, on dira que fenetre mere est DIALOG.

Si un ctrl EDIT n'a pas le style ES_WANTRETURN alors dialog reçoit un wParam == IDOK en mssg WM_COMMAND.
Si style ES_WANTRETURN est mis alors sous classer le EDIT et traiter WM_CHAR.

ciao...
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014

j'ai essayé aussi de sous classer, mais je ne peux sousclasser que le 1er edit, comment faire pour les autres?
Merci pour les reponses c'est gentil
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014

c'es OK sa fonctionne
je vous remerci de votre attention.
si il ya une autre methode je serai preneur.
Merci BruNews, vous m'avez ete d'un grand secour,
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014

j'essay d'exploiter aussi la piste es_wantreturn (en le mettant a true), j'ai aussi essayé idok ... sans rien


 .ELSEIF eax == WM_COMMAND
mov eax, wParam


;.if((wParam)==IDOK)
.IF (ax==IDC_EDT2)

invoke GetDlgItem,hWnd,IDC_EDT3
invoke SetFocus,eax
invoke SetFocus,IDC_EDT3
là sa doit faire plus de 2 jours de recherche sans trouver ce qui cloche
--
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
21
J'insiste sur ce point:
pour tous ces tests de style de fenetre Windows et traitement des messages, il faut d'abord faire en C, ce sont des heurs de benef. L'ASM pour cela n'apportera RIEN du tout, un compilo C correct generera au moins du aussi bon code, voire meme beaucoup mieux comparé a un debutant.

ciao...
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014

realiser tout en asm est un objectif personnel, j'essay pas de gagner du temps, mais juste d'apprendre