[Win32] Problème Static / Scrollbar

Iphelias Messages postés 6 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 14 mai 2007 - 26 avril 2007 à 14:49
Iphelias Messages postés 6 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 14 mai 2007 - 26 avril 2007 à 19:40
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 avril 2007 à 15:34
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++
0
Iphelias Messages postés 6 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 14 mai 2007
26 avril 2007 à 19:40
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.
0
Rejoignez-nous