Windows-Controls: C-TrackBar (Slider)

Description

Bonjour,

Un contrôle "TrackBar" est une fenêtre qui contient un curseur (slider) et des marques facultatives.
Lorsque l'utilisateur déplace ce curseur, en utilisant la souris ou les touches directionnelles, la fenêtre envoie des messages de notification pour indiquer le changement.

C'est la constante "TBS_VERT" qui détermine si le TrackBar est <grasvertical</gras>.

Code de création:
  HWND tbH=0,tbV=0;
// ...
    case WM_CREATE: {
      // Track Bar horizontal
      tbH=CreateWindow(TRACKBAR_CLASS,0,ABCV,20,35,300,40,h,0,0,0);
      SendMessage(tbH,TBM_SETTICFREQ,10,0); // Marques tous les 10 (/100)
      HWND bdy=CreateWindow("STATIC","0",CV|SS_RIGHT,0,0,10,20,h,0,0,0);
      SendMessage(tbH,TBM_SETBUDDY,1,(LPARAM)bdy); // Texte "0" à gauche
      bdy=CreateWindow("STATIC","100%",CV|SS_LEFT,0,0,40,20,h,0,0,0);
      SendMessage(tbH,TBM_SETBUDDY,0,(LPARAM)bdy); // Texte "100%" à droite
      // Track Bar vertical
      tbV=CreateWindow(TRACKBAR_CLASS,0,ABCV|TBS_VERT,20,90,40,120,h,0,0,0);
      SendMessage(tbV,TBM_SETTICFREQ,20,0); // Marques tous les 20 (/100)
      // ...
    } return 0;
// ...


Code du traitement des messages:
// ...
  char hrz[64]=" Pos Hori en % = ",vrt[64]=" Pos Vert en % = ";
// ...
    case WM_HSCROLL:
      if ((LOWORD(wP)==TB_THUMBTRACK)&&((HWND)lP==tbH)) {
        _itoa_s(HIWORD(wP),hrz+17,43,10); SetWindowText(edit,hrz);
      } return 0;
    case WM_VSCROLL:
      if ((LOWORD(wP)==TB_THUMBTRACK)&&((HWND)lP==tbV)) {
        _itoa_s(HIWORD(wP),vrt+17,43,10); SetWindowText(edit,vrt);
      } return 0;
// ...
Dans case WM_HSCROLL:, le test:
   if ((LOWORD(wP)==TB_THUMBTRACK)&&((HWND)lP==tbH)) {…}
peut être simplifié et remplacé par:
   if (LOWORD(wP)==TB_THUMBTRACK) {…}
lorsqu'il n'y a qu'un seul contrôle TrackBar horizontal:

Idem pour "vertical".

Liens:
CodeS-SourceS: Windows-Controls: A-Boutons
CodeS-SourceS: Windows-Controls: B-Barre d'état (status bar)

Windows common controls demo
Windows: Trackbar
Using Trackbar Controls
ZetCode: Windows API controls II


Bonne lecture …

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.