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;