[Win32] Problème Scrollbar

Iphelias Messages postés 6 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 14 mai 2007 - 25 avril 2007 à 18:49
Iphelias Messages postés 6 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 14 mai 2007 - 26 avril 2007 à 14:41
Bonjour,

Je developpe actuellement une application win 32 et je rencontre un problème.

En gros dans ma fenetre j'ai 2 Scrollbars.


hScrollBar = CreateWindowEx(0,"scrollbar",NULL,WS_VISIBLE|WS_CHILD,
510,40,50,24,hwnd,NULL,GetModuleHandle(NULL),NULL);

hScrollBar2 =CreateWindowEx(0,"scrollbar",NULL,WS_VISIBLE|WS_CHILD,
510,100,50,24,hwnd,NULL,GetModuleHandle(NULL),NULL);

SetScrollInfo(hScrollBar, SB_CTL, &si, FALSE);
SetScrollInfo(hScrollBar2, SB_CTL, &si, FALSE);




Et j'arrive a gérer le mouvement des deux ... Mais je n'arrive pas a récupérer leur position et l'afficher dans un static.

En
effet, récupérer la position d'une scrollbar est simplae, mais je
n'arrive pas a dissocier dans WM_HSCROLL laquelle est en train de
bouger ...


case WM_HSCROLL:
 GetScrollInfo((HWND)lParam, SB_CTL, &si);
         switch (LOWORD(wParam))
           {
             case SB_PAGEUP:
                si.nPos -= 2;
                if(si.nPos < si.nMin) si.nPos = si.nMin ;
                break;

              case SB_PAGEDOWN:
                si.nPos += 2;
                if(si.nPos > si.nMax) si.nPos = si.nMax ;
                break;

              case SB_LINEUP:
                if(si.nPos > si.nMin) si.nPos--;
                break;

                case SB_LINEDOWN:
                if(si.nPos < si.nMax) si.nPos++;
                break;

              case SB_THUMBPOSITION:
                si.nPos = HIWORD(wParam);
                break;
            }
         si.fMask  = SIF_POS;     
         SetScrollInfo((HWND)lParam, SB_CTL, &si, TRUE);
            return 0;




J'espère m'être fait comprendre.

Merci par avance si vous pouvez m'aider !!

2 réponses

mogwai93 Messages postés 362 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 4 novembre 2023
25 avril 2007 à 21:42
regarde ce code :
http://www.codes-sources.com/code.aspx?ID=10501

tu as un exemple de gestion de plusieurs scrolls sur la meme fenetre
0
Iphelias Messages postés 6 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 14 mai 2007
26 avril 2007 à 14:41
Bon finalement j'ai contourné la difficulté car le lien que tu m'a donné Mogwai93 ne correspond pas a ce que je fais car je travail dans une fenêtre et non dans des boîtes de dialog ....

Ma solution:

    //On récupère la position du curseur
        GetCursorPos(&pt);       
        //On la convertit en coordonnées dans la zone client
        ScreenToClient(hwnd,&pt);   
0
Rejoignez-nous