Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : cscrollbar [ Archives / Au secours ] (mayalen)

mardi 29 juin 2004 à 11:59:21 | cscrollbar

mayalen

j'aimerai creer un scrollbar vertical dans une boite de dialogue
mais je suis un peu perdu!!!
merci

mardi 29 juin 2004 à 12:16:05 | Re : cscrollbar

Picospicos


Il faut que tu inseres cet objet dans ton fichier .rc :

SCROLLBAR IDC_SCROLLBAR,13,38,11,34,SBS_VERT

Change l'identifiant de la scrollbar et la position de celle-ci à ta guise.

Si tu utilises visual c++, tu as juste à dessiner la scrollbar dans l'editeur de resource et il te mettra le fichier rc à jour tout seul ;)

++ Picos

mardi 29 juin 2004 à 12:17:46 | Re : cscrollbar

Picospicos


Petite precision, il faut que tu l'inseres entre les balises BEGIN et END correspondant à la declaration de ta DIALOG BOX dans ton fichier .rc

mardi 29 juin 2004 à 13:49:56 | Re : cscrollbar

mayalen


ok pour ca mais apres comment fait on pour gerer tout ca

j'ai fait CScrollbar* pScrollBar;
pScrollBar.create mais ca ne marche pas


je suis bien sur visual c++,


merci bcp

mardi 29 juin 2004 à 14:52:53 | Re : cscrollbar

Picospicos

Il va falloir que tu traites l'evenement WM_VSCROLL, si tu ne vois pas comment faire, renseigne toi sur le role de DECLARE_MESSAGE_MAP BEGIN_MESSAGE_MAP et END_MESSAGE_MAP (si tu utilises les MFC), grace à cet evenement tu vas pouvoir determiner quelles actions l'utilisateur à effectuer sur ta scrollbar. Et en fonction de cet action tu agis sur ta scroll bar.

Est ce que tu fais ton interface avec l'API windows ou avec les MFC?

Si tu l'as faits avec les MFC, je peux t'expliquer plus en detail :

Dans ta classe derivee de CDialog tu declares :
CScrollBar Scroll;
et
en protected
afx_msg void OnVScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar );

Dans la method DoDataExchange de cette classe derivee il faut que tu rentres cette ligne :

DDX_Control(pDX, IDC_SCROLL, Scroll);\\C'est pour lier la scroll bar que tu as dessiner avec l'editeur et l'instance de la classe CScrollBar que tu as declare.

Ensuite entre BEGIN_MESSAGE_MAP et END_MESSAGE_MAP il faut que tu rentres la ligne suivante :

ON_WM_VSCROLL() \\C'est le message correspondant à l'evenement

Voici une description possible de la methode OnVScroll :

void CDeriveDialog::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
switch(nSBCode)
{
case SB_LINEUP :
Scroll.SetScrollPos(Scroll.GetScrollPos()-1,TRUE);
break;
case SB_LINEDOWN :
Scroll.SetScrollPos(Scroll.GetScrollPos()+1,TRUE);
break;
case SB_THUMBTRACK :
Scroll.SetScrollPos(nPos,TRUE);
break;
}
}

J'espere que ca pourra t'aider

Picos



Cette discussion est classé dans : cscrollbar


Répondre à ce message

Sujets en rapport avec ce message



Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,172 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.