[C++] utilisation de la touche tab pour basculer le focus

utilisation de la touche tab pour basculer le focus [C++] - Programmation

Marsh Posté le 09-10-2001 à 12:04:08    

En fait j'arrive pas à trouver, mais je pense que la solution est pas très compliquée pr qqn qui à déja été confronté au pb (topic type qui trouve une solution dans les forums ... vous allez pas faire mentir les statistique, hein !? :D ).
 
Je cherche à gérer le basculement (ou le switch pour les franglophones) du focus d'un contrôle à l'autre quand on presse la touche Tab. Ou est géré ce fonctionnement par défaut !? Comment influer la dessus ?
 
ps: je pense pas que ça change qqch au pb, mais j'utilise les MFC. Hé oui; même que j'trouve ça pas si mal !
 
Merci d'avance à tous (sauf aux cons ... mais je suis sur qu'aucun con ne traine sur ce forum !:D)

Reply

Marsh Posté le 09-10-2001 à 12:04:08   

Reply

Marsh Posté le 09-10-2001 à 12:08:07    

:lol:
 
activer le 'tab stop' dans le resource editor ... mais c'est mis par défaut ... donc quel est ton problème ? :??:

Reply

Marsh Posté le 09-10-2001 à 12:17:26    

Bah, le pb est beaucoup plus compliqué à expliquer... Allez, j'fais un essais !
 
en fait, y a plusieurs pb:
 
1) je dois gérer ce truc de façon à ce que le focus se déplace dans un ordre donné (et pas au hasard, comme quand on se contente de cocher le tab stop !)
 
2) plus compliqué: la boite de dialogue dans laquelle se pose mon pb est faite à l'ancienne (peut être que ça s'fait pareil maintenant ... j'en doute !). Elle simule un défilement de controles EDIT. Je m'explique : dans cette boite sont affichés 5 controles EDIT aux quels sont associés des labels (numéros de 1 à 5), et en faisant défiler ces contrôles avec une barre de défilement, le contenu de ces contrôles et le label qui leur est associé sont décalés (un coup vers le bas sur la barre de défilement affichera les contrôles EDIT de 2 à 6, etc...). Et je voudrais que la touche Tab fasse passer du contrôle 1 au 2 (surement pas trop dûr, allez savoir...moi j'en sais rien) puis du 2 au 3,... et tout se complique alors pour passer du 5 au 6 (il faut faire "déiler" les contrôles, comme si on avais cliqué sur la barre de défilement)
 
ha ha... compliqué non !? donc...g besoin d'aide !
donc, ça s'confirme, le fait de cocher le Tab stop ou non m'avancera pas vraiement ! :D ... par contre si tu vois une solution, je suis toujours prenneur...

 

[edtdd]--Message édité par El_Gringo--[/edtdd]

Reply

Marsh Posté le 09-10-2001 à 12:33:56    

1) dans le resource editor : tools > tab order. tu règles ça à la main. si je ne dis pas de conneries, le tab order est en fait l'ordre de création des contrôles.
 
2) un contrôle reçoit deux messages pour le focus : wm_setfocus et wm_killfocus (pour quand il le reçoit et quand il le perd). tu n'as qu'à en gérer un des deux et faire défiler les contrôles. enfin c'est pas censé defiler tout seul ces bestioles ? le tab order ne fait que rajouter un style au contrôle (ws_tabstop je crois).
voilà .. je suis pas sûr d'avoir tout compris non plus ... :D

Reply

Marsh Posté le 09-10-2001 à 13:01:28    

Sais pas trop, mais sous VB(3), on pouvait donner (imposer manuellement) un numéro de "passage" TabStop aux contrôles.
 
Je suis en train de me demander, en C, si, à part le bouton défini par "défaut" (souvent IDOK), les numéros des objets de la feuille ne gèreraient pas l'ordre de parcours. Un objet d'id (dans fichier .RC) supérieur serait atteint par "Tab" puis le suivant dans l'ordre numérique ? A voir ...
 
Si c'était vérifié, si on veut passer de champ1 à champ2 à champ3, il suffirait que champ1 ait l'ID 500 (par ex.), champ2 ID 501, champ3 ID 502.. ?

Reply

Marsh Posté le 09-10-2001 à 14:22:46    

youdontcare a écrit a écrit :

1) dans le resource editor : tools > tab order. tu règles ça à la main. si je ne dis pas de conneries, le tab order est en fait l'ordre de création des contrôles.
 
2) un contrôle reçoit deux messages pour le focus : wm_setfocus et wm_killfocus (pour quand il le reçoit et quand il le perd). tu n'as qu'à en gérer un des deux et faire défiler les contrôles. enfin c'est pas censé defiler tout seul ces bestioles ? le tab order ne fait que rajouter un style au contrôle (ws_tabstop je crois).
voilà .. je suis pas sûr d'avoir tout compris non plus ... :D  




 
pour le 1... merci.
Pour le 2, j'crois pas que t'ai tout compris, en effet, ms t pas responsable. J'pensais bien que ça serai délicat à expliquer... En fait le contrôles défilent pas réellement; c'est seulement leur contenu et celui des labels qui leur sont associés qui défilent... pour simuler un défilement.
(je suis pas sur que ça soit tellement plus clair là) C pas grave, j'vais essayer de me démerder !:D

Reply

Marsh Posté le 09-10-2001 à 14:40:10    

carbon_14 > on peut également le faire dans vc++. toujours dans vc++, l'ordre est défini par l'ordre de création des contrôles, l'id restant fixe.
 
el_gringo > screenshot ?

Reply

Marsh Posté le 09-10-2001 à 14:45:31    

youdontcare a écrit a écrit :

carbon_14 > on peut également le faire dans vc++. toujours dans vc++, l'ordre est défini par l'ordre de création des contrôles, l'id restant fixe.
 
el_gringo > screenshot ?  




 
pourquoi pas... mais j'y connais rien en HTML ! Comment on fait pour afficher un JPEG ?

Reply

Marsh Posté le 09-10-2001 à 14:55:58    

tu l'uploades qq part, et tu utilises l'icône 'oeil' de la réponse. ça rajoute les balises [img]tonUrl[/url] autour de l'url.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed