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

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

Votre réponse

12 réponses

Meilleure réponse
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscriptionModérateurStatut 7 novembre 2014 Dernière intervention - 3 janv. 2014 à 10:27
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...

Merci BruNews 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

sadounno 34 Messages postés samedi 25 septembre 2010Date d'inscription 20 février 2014 Dernière intervention - 3 janv. 2014 à 10:36
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 34 Messages postés samedi 25 septembre 2010Date d'inscription 20 février 2014 Dernière intervention - 3 janv. 2014 à 11:45
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 34 Messages postés samedi 25 septembre 2010Date d'inscription 20 février 2014 Dernière intervention - 3 janv. 2014 à 11:57
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
Meilleure réponse
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscriptionModérateurStatut 7 novembre 2014 Dernière intervention - 3 janv. 2014 à 12:59
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...

Merci BruNews 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

sadounno 34 Messages postés samedi 25 septembre 2010Date d'inscription 20 février 2014 Dernière intervention - 3 janv. 2014 à 13:08
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
Meilleure réponse
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscriptionModérateurStatut 7 novembre 2014 Dernière intervention - 3 janv. 2014 à 13:38
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...

Merci BruNews 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

sadounno 34 Messages postés samedi 25 septembre 2010Date d'inscription 20 février 2014 Dernière intervention - 3 janv. 2014 à 14:24
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 34 Messages postés samedi 25 septembre 2010Date d'inscription 20 février 2014 Dernière intervention - 3 janv. 2014 à 14:57
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
sadounno 34 Messages postés samedi 25 septembre 2010Date d'inscription 20 février 2014 Dernière intervention - 3 janv. 2014 à 08:50
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
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscriptionModérateurStatut 7 novembre 2014 Dernière intervention - 3 janv. 2014 à 13:42
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 34 Messages postés samedi 25 septembre 2010Date d'inscription 20 février 2014 Dernière intervention - 3 janv. 2014 à 14:25
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.