Utiliser plusieurs controles scrollbar dans une fenetre

kaishaku Messages postés 2 Date d'inscription dimanche 21 décembre 2003 Statut Membre Dernière intervention 6 septembre 2005 - 5 sept. 2005 à 17:27
kaishaku Messages postés 2 Date d'inscription dimanche 21 décembre 2003 Statut Membre Dernière intervention 6 septembre 2005 - 6 sept. 2005 à 17:08
Bonjour,

je debute la programmation win32 en ecrivant un petit soft, pour mon
pere, dans lequel j'ai besoin de 4 scrollbars horizontales. J'arrive à gerer
le WM_VSCROLL avec 1 seule scrollbar mais avec 4, comment savoir quelle scrollbar à été modifiée?

J'ai fait un essai en testant déjà sur 2 scrollbar (1 verticale et 1 horizontale) si le
lParam, contenu dans le WM_VSCROLL, contient la scrollbar mais Dev-Cpp n'accepte pas les pointeurs comme valeur dans un case.

Ma façon de faire est-elle bonne ? si oui comment je peux corriger mon erreur ? si non comment faire ?

merci beaucoup de m'accorder un peu de votre temps.



LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

{

switch
(message)
/* handle the messages */

{

case WM_CREATE :

{

// creation des SCROLLBAR

hwndVScroll = CreateWindow ("ScrollBar",

NULL,WS_CHILD | WS_VISIBLE | SBS_LEFTALIGN | SBS_VERT,


20,30,0,300,


hwnd, (HMENU) IDSB_SCROLL ,


hInst,


NULL);



hwndHScroll = CreateWindow ("ScrollBar",


NULL,WS_CHILD | WS_VISIBLE | SBS_LEFTALIGN | SBS_HORZ,


60,30,300,30,


hwnd, (HMENU) IDSB_SCROLL ,


hInst,


NULL);


/* Rend la fenetre visible a l'écran */

ShowWindow (hwndVScroll, SW_SHOW);

ShowWindow (hwndHScroll, SW_SHOW);



UpdateWindow
(hwnd);


} // fin case WM_CREATE

break;



case WM_VSCROLL :

{

switch (lParam) // Voir traitement de WM_VSCROLL en début



// de code.

{


case hwndVScroll: MessageBox(NULL, // handle of
owner window


"Vscroll", // address of text in message box


"ScrollBar", // address of title of message box


MB_OK // style of message box


);

break;

}


}


break;



case WM_HSCROLL :

{

switch (lParam) // Voir traitement de WM_VSCROLL en début



// de code.

{


case hwndHScroll: MessageBox(NULL, // handle of
owner window


"Hscroll", // address of text in message box


"ScrollBar", // address of title of message box


MB_OK // style of message box


);

break;

}


}


break;

3 réponses

julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
5 sept. 2005 à 17:45
Pour utiliser 4 scrollbars horizontales, lorsque tu les crées, tu
stoques leur handle, puis dans ta fonction de traitement des message tu
fais un switch sur ce handle.

<hr size="2" width="100%">static HWND hScroll1, hScroll2, hScroll3, hScroll4;



case WM_CREATE:

hScroll1 = CreateWindow(...);

hScroll2 = CreateWindow(...);

hScroll3 = CreateWindow(...);

hScroll4 = CreateWindow(...);

//Mets tes autres instructions

break;



case WM_HSCROLL:

switch( (HWND) lParam)

{

case hScroll1:

//Code si scroll1

break;

case hScroll2:

//Code si scroll2

break;

...

}

<hr size="2" width="100%">

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
5 sept. 2005 à 18:09
CHOIX COULEURS (WIN32, NON MFC)
http://www.cppfrance.com/code.aspx?id=10501

Regarde dans RgbTest.cpp le case WM_VSCROLL, ça traite pour 6 scrollbars.

ciao...
BruNews, MVP VC++
0
kaishaku Messages postés 2 Date d'inscription dimanche 21 décembre 2003 Statut Membre Dernière intervention 6 septembre 2005
6 sept. 2005 à 17:08
Merci beaucoup pour vos reponses.

julienbj : Il manquait un cast dans mon code et pourtant j'ai toujours
des erreurs quand je compile avec un switch/case mais tant pis
j'utilise une serie de if qui ne me fait pas d'erreurs.



a tout hasard voici le code et les erreurs:

case WM_HSCROLL:

switch( (HWND) lParam) <- switch quantity not an integer

{

case hScroll1: <- hscroll1 cannot appear in a constant-expression

//Code si scroll1

break;

case hScroll2:

//Code si scroll2

break;

...

}


BruNews je cherchais justement un petit soft comme le tient pour avoir les valeurs rgb d'une couleur pour mon bout de code.



merci encore a tous les 2.
0
Rejoignez-nous