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

Windows-Controls: H-Tabs (Onglets)

Soyez le premier à donner votre avis sur cette source.

Vue 517 fois - Téléchargée 49 fois

Description

Bonjour,

Un contrôle tab (onglet) est analogue aux séparateurs dans un cahier ou les étiquettes dans un classeur.
En utilisant un contrôle de tabulation, une application peut définir plusieurs pages pour la même zone d'une fenêtre ou d'une boîte de dialogue.
Chaque page comprend un certain type d'information ou un groupe de contrôles que l'application affiche lorsque l'utilisateur sélectionne l'onglet correspondant.

Code de création: WM_CREATE
<code cpp>
char *js[]={"Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"};
const int IdTab=10,hiTab=25,nPage=sizeof(js)/sizeof(*js);
HWND tab;

void Create(HWND hWnd) {
  TCITEM ti={TCIF_TEXT,0,0,0,0,-1,0};
  tab=CreateWindow(WC_TABCONTROL,"",WS_CHILD|WS_CLIPSIBLINGS|WS_VISIBLE
    |TCS_BUTTONS,0,0,300,40,hWnd,(HMENU)IdTab,0,0);
  for (int i=0; i<nPage; ++i) {ti.pszText=js[i]; TabCtrl_InsertItem(tab,i,&ti);}
};


Comme je n'ai pas trouvé de méthode simple pour dessiner dans les pages correspondantes, j'ai limité la hauteur de tab à hiTab=25.
Je peux donc dessiner chaque page selon son numéro i=SendMessage(tab,TCM_GETCURSEL,0,0) directement dans la fenêtre principale:
Code du traitement du message: WM_PAINT:
<code cpp>
void Paint(HWND hWnd) {
  RECT r; GetClientRect(hWnd,&r);
  PAINTSTRUCT ps;
  HDC hdc=BeginPaint(hWnd,&ps);
  MoveToEx(hdc,r.left,r.top+hiTab,0); LineTo(hdc,r.right,r.bottom);
	MoveToEx(hdc,r.left,r.bottom,0); LineTo(hdc,r.right,r.top+hiTab);
  int x=(r.left+r.right)/2,y=(r.top+r.bottom)/2-8;
  int i=SendMessage(tab,TCM_GETCURSEL,0,0);
  SetBkMode(hdc,TRANSPARENT); TextOut(hdc,x-40,y,"Page:",5);
  TextOut(hdc,x+4,y,js[i],strlen(js[i])); // dessin selon la page i
  EndPaint(hWnd,&ps);
}

Modifiez la taille de la fenêtre.

Quelques liens:
CodeS-SourceS: Windows-Controls: A-Boutons
CodeS-SourceS: Windows-Controls: B-Barre d'état (status bar)
CodeS-SourceS: Windows-Controls: C-TrackBar (Slider)
CodeS-SourceS: Windows-Controls: D-Combo Box
CodeS-SourceS: Windows-Controls: E-Edit (simulation console)
CodeS-SourceS: Windows-Controls: F-ToolBar (Barre d'outils)
CodeS-SourceS: Windows-Controls: G-Menu

Windows: Tab
Windows: About Tab Controls
Windows: How to Create a Tab Control in the Main Window

Remarque:
Malheureusement, je n'arrive toujours pas à charger l'image de capture; mais elle figure dans le Zip.

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.