ScrollBar [MFC]

ScrollBar [MFC] - C++ - Programmation

Marsh Posté le 09-11-2005 à 16:52:57    

Bonjour,
 
Je suis entrain de développer une petite application à base de boites de dialog sous windows XP,visual .NET, en utilisant les MFC.
J'affiche une boite de dialog contenant une série de CEdit empilés les uns sur les autres .Ma boite de dialog doit avoir une taille fixe et tous les CEdit ne peuvent pas être tous visualiser. C'est pour cela que j'ai besoin d'une scrollbar pour les faire tous défiler.
Le problème c'est que je ne sais pas trop comment m'y prendre. J'ai essayé 2 voix différentes, sans succès:
 
1)J'ai essayé en mettant la propriété de ma CDialog: "vertical scrollbar" à true, ce qui me fait juste apparaitre la scrollbar mais je n'arrive pas à la manipuler.
 
2)Parallèlement, je suis arrivé à créer une CScrollBar dans ma CDialog via la boite à outils. J'arrive à manipuler cette CScrollBar et à afficher, via un CEdit, la valeur courante de cette CScrollBar.
 
Le problème c'est que je ne vois pas comment faire pour faire défiler les CEdit de la CDialog qui ne sont pas affiché!!?Comment dire à ma CDialog de faire défiler son contenu quand je bouge la scrollbar??
 
 
Si quelqu'un à déjà fait ce que j'essaye de faire, merci de me venir en aide.
 
 
PS:Je pense que c'est tous simplement pas possible en utilisant la solution 2) et qu'il faut que j'utilise la solution 1) mais je coince.

Reply

Marsh Posté le 09-11-2005 à 16:52:57   

Reply

Marsh Posté le 09-11-2005 à 18:21:19    

j'ai la flemme de te faire un cours sur l'utilisation des CScrollBar. inspire toi de cet exemple
http://cs.dixie.edu/f03/cs4500/sou [...] lettes.htm


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 10-11-2005 à 09:16:56    

Merci pour le lien mais je le connaissais dejà.  
 
Si tu regarde cette exemple, tu verras que les scrollbars s'applique à un bitmap(en utilisant un CDC) et moi je veux que les scrollbar s'appliquent non pas à une bitmap mais à une série de champ à remplir(CEDIT) et qu'elles s'appliquent à toute la CDialog.
 
Sans me faire un cours, je serais déjà heureux de savoir si quelqu'un d'autre a déjà réussit à faire ce que j'essaye de faire.

Reply

Marsh Posté le 10-11-2005 à 09:39:20    

Perso je préfère redimensionner le dialogue mais je n'ai pas suffisament de champs pour risquer de dépasser la surface visible. Il faut donc étudier la question sérieusement.
 
Sinon tu appliques stricto census ce que tu viens d'écrire.
Tu décales les champs à chaque changement de position de l'ascenceur, tu masques les champs qui quittent le domaine visible (penser à les réafficher s'ils pénètrent à nouveau dans le domaine visible)
 
La classe CFormView peut éventuellement être une alternative. Tout dépend de l'architecture de ton appli.


Message édité par slash33 le 10-11-2005 à 09:45:45
Reply

Marsh Posté le 10-11-2005 à 15:26:33    

Un grand merci à toi slash33 pour m'avoir aiguiller vers la classe CFormView qui apres quelques ajustements(car j'utilise un CTabCtrl) fait exactement ce que je voulais.
 
Mais si quelqu'un sait par hasard, s'il est possible de scroller une CDialog sur des CEDIT sans être obliger de repositionnner manuellement les CEDIT, qu'il se fasse connaitre...

Reply

Sujets relatifs:

Leave a Replay

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