Windows-Controls: D-Combo Box

Description

Bonjour,

Un contrôle ComboBox permet de choisir un élément d'une liste déroulante.
Il existe de nombreuses "variantes" pour ce contrôle: dans cet article, je n'en présente que trois.

La particularité du petit code développé ici est qu'il traite plusieurs contrôles de type "ComboBox" simultanément.
Remarquez que le second (B) ne permet pas d'introduire un autre texte.

Code de création:
// ...
  static HWND stb,cb,cbA,cbB,cbC;
  static int CV=WS_CHILD|WS_VISIBLE;
  static int pa[]={96,196,296};
  char txt[64]="Texte-X0";
// ...
  case WM_CREATE:
    cbA=CreateWindow(WC_COMBOBOX,0,CV,10,40,76,120,h,0,0,0);
    cbB=CreateWindow(WC_COMBOBOX,0,CV|CBS_DROPDOWNLIST,106,40,84,200,h,0,0,0);
    cbC=CreateWindow(WC_COMBOBOX,0,CV|CBS_DROPDOWN,206,40,84,200,h,0,0,0);
    for (int i=0; i<5; ++i) {
      txt[7]='1'+i;
      txt[6]='A'; SendMessage(cbA,CB_INSERTSTRING,i,(LPARAM)txt);
      txt[6]='B'; SendMessage(cbB,CB_INSERTSTRING,i,(LPARAM)txt);
      txt[6]='C'; SendMessage(cbC,CB_INSERTSTRING,i,(LPARAM)txt);
    }
    stb=CreateWindow(STATUSCLASSNAME,"",CV,0,0,0,0,h,0,0,0); // StatusBar
    SendMessage(stb,SB_SETPARTS,sizeof(pa)/sizeof(int),(LPARAM)&pa);
    return 0;
// ...


Code du traitement des messages:
// ...
  case WM_COMMAND:
    if (HIWORD(wP)==CBN_SELCHANGE) { // Sélection dans la liste
      int sel=(int)SendMessage(cb=(HWND)lP,CB_GETCURSEL,0,0);
      SendMessage(cb,CB_GETLBTEXT,sel,(LPARAM)&txt);
      int idx=(cb==cbC)?2:(cb==cbB)?1:0; // index dans {cbA,cbB,cbC}
      SendMessage(stb,SB_SETTEXT,idx,(LPARAM)txt);
    } else if (HIWORD(wP)==CBN_EDITUPDATE) { // Texte improvisé
      SendMessage(cb=(HWND)lP,WM_GETTEXT,sizeof(txt),(LPARAM)&txt);
      int idx=(cb==cbC)?2:(cb==cbB)?1:0; // index dans {cbA,cbB,cbC}
      SendMessage(stb,SB_SETTEXT,idx,(LPARAM)txt);
    } return 0;
// ...


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

Windows: About Combo Boxes
Windows: How to Create a Simple Combo Box
Windows: Drop-down Lists & Combo Boxes

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.