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

Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014
- - Dernière réponse : sadounno
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014
- 3 janv. 2014 à 14:57
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
--
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
1
Merci
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...

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 188 internautes nous ont dit merci ce mois-ci

sadounno
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
sadounno
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
sadounno
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??
Commenter la réponse de BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
1
Merci
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...

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 188 internautes nous ont dit merci ce mois-ci

sadounno
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
Commenter la réponse de BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
1
Merci
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...

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 188 internautes nous ont dit merci ce mois-ci

sadounno
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
sadounno
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,
Commenter la réponse de BruNews
Messages postés
34
Date d'inscription
samedi 25 septembre 2010
Statut
Membre
Dernière intervention
20 février 2014
0
Merci
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
--
Commenter la réponse de sadounno
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
0
Merci
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...
sadounno
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
Commenter la réponse de BruNews