Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3038 connectés 

 


Dernière réponse
Sujet : [Win] J'arrive pas à faire marcher les scroll bars
seblamb

antp a écrit a écrit :

 
 
d'ailleurs les accolades servent à rien il me semble dans les case...  




 
Ca peut servir pour déclarer un variable locale mais ça remplace pas le break.
 
 case 1:
 {
  int i =1;
  i++;
 }


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
seblamb

antp a écrit a écrit :

 
 
d'ailleurs les accolades servent à rien il me semble dans les case...  




 
Ca peut servir pour déclarer un variable locale mais ça remplace pas le break.
 
 case 1:
 {
  int i =1;
  i++;
 }

Alload Ca sert à rien les accolades dans un switch->case?
 
Merde... Je pensais qu'elles jouaient le même rôle que break.
antp

Alload a écrit a écrit :

C'est bon, fallait seulement rajouter des break; dans chaque cas.
:)  




 
d'ailleurs les accolades servent à rien il me semble dans les case...

Alload C'est bon, fallait seulement rajouter des break; dans chaque cas.
:)
Alload J'aimerais implémenter des scroll bars dans mon application Win 32, j'ai lu la doc SDK de Microsoft. Ca avait l'air assez simple, mais mon code ne marche pas du tout...
:(
 
En fait les scroll bars s'affichent, mais leurs positions se remettent remettent toujours à celle par défaut après leur utilisation.
 
Voilà le code qui me sert pour la barre horizontale:
 
 
//Variables globales
SCROLLINFO si;
 
short nScreenMaxX;   //Largeur maximum de la fenêtre en pixel
short nScreenMaxY;   //Hauteur maximum de la fenêtre en pixel
 
short nScrollX = 0;   //Position x du scrolling
short nScrollY = 0;   //Position y du scrolling
 
 
//Code situé dans la fonction traitant les messages Windows
case WM_SIZE:
  {
   nScreenMaxX = LOWORD(lParam);
   nScreenMaxY = HIWORD(lParam);
 
   si.cbSize = sizeof(SCROLLINFO);
   si.fMask = SIF_ALL;
   si.nMin = 0;
   si.nMax = nScreenMaxX;
   si.nPage = 50;
   si.nPos = nScrollX;
   SetScrollInfo(hWnd, SB_HORZ, &si, true);
 
   si.nMax = nScreenMaxY;
   si.nPage = 50;
   si.nPos = nScrollY;
   SetScrollInfo(hWnd, SB_VERT, &si, true);
 
   InvalidateRect(hWnd, NULL, true);
   return 0;
  }
 
 case WM_HSCROLL:
  {
   short nInc;
   switch (LOWORD(wParam))
   {
   case SB_PAGEUP:
    { nInc = si.nPage; }
   case SB_PAGEDOWN:
    { nInc = -si.nPage; }
   case SB_LINELEFT:
    { nInc = -1; }
   case SB_LINERIGHT:
    { nInc = 1; }
   case SB_THUMBTRACK:
    { nInc = HIWORD(wParam) - nScrollX; }
   default:
    { nInc = 0; }
   }
   nScrollX += nInc;
   si.nPos = nScrollX;
   SetScrollInfo(hWnd, SB_HORZ, &si, true);
 
   InvalidateRect(hWnd, NULL, true);
   return 0;
  }
 
 
 
Mon application reçoit bien le message WM_HSCROLL car la fenêtre est réactualisée par InvalidateRect() à chaque fois que je bouge la barre, mais sinon la scène et la barre ne bouge pas...
:(
 
Vous voyez le problème? Bien sûr j'ai mis les tags WS_HSCROLL et WS_VSCROLL pour créer ma fenêtre.

Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR