Bonjour,
Une barre d'outils est un contrôle qui contient un ou plusieurs boutons. Chaque bouton, lorsqu'il est cliqué par un utilisateur, envoie un message de commande à la fenêtre parentale.
Il utilise une "liste d'images" qui est une collection d'images de même taille, dont chacune peut être référencée par son index.
Code de création:
LRESULT CALLBACK Wpro(HWND h,UINT m,WPARAM wP,LPARAM lP) {
const enum {_New=10,_Open,_Save,_Help};
static HWND edit,tlBar;
switch(m) {
case WM_CREATE: {
tlBar=CreateWindow(TOOLBARCLASSNAME,0
,WS_CHILD|WS_VISIBLE|TBSTYLE_WRAPABLE,0,0,0,0,h,0,0,0);
HIMAGELIST imaList=ImageList_Create(16,16,ILC_COLOR16|ILC_MASK,3,0);
SendMessage(tlBar,TB_SETIMAGELIST,0,(LPARAM)imaList); // imaList↔tlBar
SendMessage(tlBar,TB_LOADIMAGES,IDB_STD_SMALL_COLOR,(LPARAM)HINST_COMMCTRL);
TBBUTTON tbb[]={
{STD_FILENEW,_New,TBSTATE_ENABLED,BTNS_AUTOSIZE,{0},0,(INT_PTR)"New"},
{STD_FILEOPEN,_Open,TBSTATE_ENABLED,BTNS_AUTOSIZE,{0},0,(INT_PTR)"Open"},
{STD_FILESAVE,_Save,0,BTNS_AUTOSIZE,{0},0,(INT_PTR)"Save"},
{STD_HELP,_Help,TBSTATE_ENABLED,BTNS_AUTOSIZE,{0},0,(INT_PTR)"Help"}
};
SendMessage(tlBar,TB_BUTTONSTRUCTSIZE,sizeof(TBBUTTON),0);
SendMessage(tlBar,TB_ADDBUTTONS,sizeof(tbb)/sizeof(TBBUTTON),(LPARAM)&tbb);
SendMessage(tlBar,TB_AUTOSIZE,0,0);
// ...
} return 0;
// ...
Code du traitement des messages:
// ...
case WM_COMMAND:
switch(wP) {
case _New: SendMessage(tlBar,TB_ENABLEBUTTON,_Save,1);
SetWindowText(edit," New File"); return 0;
case _Open: SendMessage(tlBar,TB_ENABLEBUTTON,_Save,1);
SetWindowText(edit," Open File"); return 0;
case _Save: SetWindowText(edit," Save File"); return 0;
case _Help: SetWindowText(edit," Help"); return 0;
} return 0;
// ...
Dans cet exemple, le bouton
Save n'est activé qu'après le premier click sur
New ou
Open.
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)
Windows: How to Create Toolbars
Windows: ImageList_Create function
Bonne lecture …
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.