CodeS-SourceS
Rechercher un code, un tuto, une réponse

Windows-Controls: B-Barre d'état (status bar)

Soyez le premier à donner votre avis sur cette source.

Vue 99 fois - Téléchargée 12 fois

Description

Bonjour,

Plutôt que d'utiliser une fenêtre "edit" pour montrer la situation d'un logiciel, affichons maintenant la barre d'état (status bar).

Une barre d'état est une fenêtre horizontale au bas d'une fenêtre parentale dans laquelle une application peut afficher différents types d'informations d'état.

Cette fois, en plus de "windows.h", nous incluons aussi "Commctrl.h" [accompagné de #pragma comment(lib,"comctl32.lib")], avec son initialisation "InitCommonControlsEx(…)".

La fonction CALLBACK Wpro(…) peut être codée de la manière suivante:
const int CV=WS_CHILD|WS_VISIBLE,BCV=WS_BORDER|CV
  ,SCV=SBARS_SIZEGRIP|CV,CVA=CV|BS_AUTORADIOBUTTON;
const char *mes[] {" CB unchecked"," CB checked"};
const enum {IdCB=17,IdRd,IdGr,IdBl};
HWND stb;

LRESULT CALLBACK Wpro(HWND h,UINT m,WPARAM wP,LPARAM lP) {
  PAINTSTRUCT ps;
  HDC hdc;
  static int chk,pa[]={50,140,190};

  switch(m) {
  case WM_CREATE:
    stb=CreateWindow(STATUSCLASSNAME," Status:",SCV,0,0,0,0,h,0,0,0);
      SendMessage(stb,SB_SETPARTS,sizeof(pa)/sizeof(int),(LPARAM)&pa);
    CreateWindow("BUTTON","CB",BCV|BS_CHECKBOX,50,90,60,20,h,(HMENU)IdCB,0,0);
    CreateWindow("BUTTON","Couleur",CV|BS_GROUPBOX,220,40,88,110,h,0,0,0);
    CreateWindow("BUTTON","Red",CVA,230,70,64,20,h,(HMENU)IdRd,0,0);
    CreateWindow("BUTTON","Green",CVA,230,95,64,20,h,(HMENU)IdGr,0,0);
    CreateWindow("BUTTON","Blue",CVA,230,120,64,20,h,(HMENU)IdBl,0,0);
    return 0;
  case WM_COMMAND:
    switch(wP) {
    case IdCB: chk=!IsDlgButtonChecked(h,IdCB); CheckDlgButton(h,IdCB,chk);
      SendMessage(stb,SB_SETTEXT,1,(LPARAM)mes[chk]); return 0;
    case IdRd: SendMessage(stb,SB_SETTEXT,2,(LPARAM)" Red"); return 0;
    case IdGr: SendMessage(stb,SB_SETTEXT,2,(LPARAM)" Green"); return 0;
    case IdBl: SendMessage(stb,SB_SETTEXT,2,(LPARAM)" Blue"); return 0;
    } return 0;
  case WM_PAINT: hdc=BeginPaint(h,&ps);
    SetBkMode(hdc,TRANSPARENT); // Texte transparent
    TextOut(hdc,8,8,"Controls: B-StatusBar, par William VOIROL, Sept 2017",52);
    EndPaint(h,&ps); return 0;
  case WM_CLOSE: DestroyWindow(h); return 0;
  case WM_DESTROY: PostQuitMessage(0); return 0;
  }
  return DefWindowProc(h,m,wP,lP);
} // ► msdn.microsoft.com/en-us/library/windows/desktop/hh298378(v=vs.85).aspx
L'array pa[] definit les longueurs de chaque partie de la barre d'état.

Liens:
CodeS-SourceS: Windows-Controls: A-Boutons
Windows common controls demo
Windows: How to Create Status Bars

Bonne lecture …

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Donnez votre avis

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.