[Win32] Problème Static / Scrollbar

Signaler
Messages postés
6
Date d'inscription
mardi 18 janvier 2005
Statut
Membre
Dernière intervention
14 mai 2007
-
Iphelias
Messages postés
6
Date d'inscription
mardi 18 janvier 2005
Statut
Membre
Dernière intervention
14 mai 2007
-
Bonjour,

Voila j'ai un petit Soucis en fait dans mon application win32, j'ai une scrollbar et j'aimerais mettre à jour un champ correspondant à la valeur de cet Scrollbar.

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;
                
                itoa(si.nPos,buffer,10);
                SetWindowText(lblhWnd1, buffer);
                //TextOut(GetDC(hwnd),0,0,buffer,strlen(buffer));

                SetScrollInfo((HWND)lParam, SB_CTL, &si, TRUE);
                  
            return 0;

Mais cela ne marche pas avec le SetWindowText... en effet le Static "lblhWnd1" ne change pas ... ou alors change tres rapidement avant de reprendre la valeur 0. Ce qui est etrange c'est que TextOut fonctionne ...
Par contre si je laisse les 2 cela ne marche plus...

En fait au moment de l'utilisation de ma Scrollbar ... la valeur du static devrait se mettre à jour en utilisant :

SetWindowText(lblhWnd1, buffer);

Mais la valeur change une fraction de seconde et revient sur 0.
De plus j'ai remarqué que le fait de vouloir afficher la valeur de la scrollbar dans un static, annule le mouvement de ma scrollbar. en effet Celle ci reste toujours dans son état initial.

Par contre lorsque j'affiche la valeur de la scrollbar par :

TextOut(GetDC(hwnd),0,20,buffer,strlen(buffer));

Alors la valeur s'affiche normalement à l'ecran, et la scrollbar fonctionne. Mais TextOut n'est pas tres propre.
De même si je n'essai pas d'afficher la valeur de la scrollbar, la scrollbar fonctionne normalement.

:aie:
Je Sais plus vraiment quoi faire en faite lol ....

2 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
Regarde comment c'est fait ici:
http://www.cppfrance.com/code.aspx?id=10501
Tu reproduis idem et devra par force aller.

ciao...
BruNews, MVP VC++
Messages postés
6
Date d'inscription
mardi 18 janvier 2005
Statut
Membre
Dernière intervention
14 mai 2007

Merci BruNews mais suis un peu débutant et je n'arrive pas a compiler ce que tu m'a envoyer.
 
De plus moi j'ai fais une fenetre et non une boite de dialogue et je n'utilise pas les Fichier rc, ressource, je créé tout moi même.