1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
| #include <windows.h>
#include <commctrl.h>
//declaration des fonctions:
LRESULT CALLBACK procedureFenetrePrincipale(HWND, UINT, WPARAM, LPARAM);
void CreationTreeview();
//handle fenetre
HINSTANCE instance;
//handle de l'image liste:
HIMAGELIST himageliste;
//handle de la treeview:
HWND htreeview;
//handle de la libreairie
HINSTANCE hlibrairie;
//handle des icones:
HICON hicone;
//testouille
//structure;
TV_INSERTSTRUCT tvii;
HTREEITEM hitem;
//fonctions:
void CreationTreeview(HWND fenetrePrincipale)
{
//initialisation de la librairie:
InitCommonControls();
//creation de l'image liste:
himageliste=ImageList_Create(GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),ILC_COLOR32,4,4);
ImageList_SetBkColor(himageliste, GetSysColor(COLOR_WINDOW));
//Creation de la treeview:
htreeview=CreateWindow(WC_TREEVIEW,"",WS_CHILD|WS_VISIBLE|TVS_HASBUTTONS|TVS_SHOWSELALWAYS|TVS_HASLINES|TVS_LINESATROOT,0,0,0,0,fenetrePrincipale,NULL,instance,NULL);
//chargement de la librairie shell32:
hlibrairie=LoadLibrary("shell32.dll");
//chargement des images
//variable:
int a;
for(a=0;a<=12;a++)
{
hicone=LoadIcon(hlibrairie,MAKEINTRESOURCE(a));
ImageList_AddIcon(himageliste,hicone);
}
//liberation de la mémoire:
FreeLibrary(hlibrairie);
//verification:
if(htreeview=NULL)
{
MessageBox(NULL, "erreur: creation treeview", NULL, MB_ICONWARNING);
}
if(himageliste=NULL)
{
MessageBox(NULL, "erreur: chargement des images", NULL, MB_ICONWARNING);
}
//recuperation des images pour l'arborescence:
TreeView_SetImageList(htreeview,himageliste,TVSIL_NORMAL);
//
tvii.hInsertAfter = TVI_LAST;
ZeroMemory(&(tvii.item), sizeof(TV_ITEM));
tvii.item.mask = TVIF_TEXT | TVIF_IMAGE |TVIF_SELECTEDIMAGE | TVIF_PARAM ;
tvii.hParent = TVI_ROOT;
tvii.item.iImage = 0;
tvii.item.iSelectedImage = 1;
tvii.item.pszText = "TEST TREEVIEW";
hitem = TreeView_InsertItem(htreeview, &tvii);
}
int WinMain (HINSTANCE cetteInstance, HINSTANCE precedenteInstance,
LPSTR lignesDeCommande, int modeDAffichage)
{
HWND fenetrePrincipale;
MSG message;
WNDCLASS classeFenetre;
instance=cetteInstance;
classeFenetre.style = 0;
classeFenetre.lpfnWndProc = procedureFenetrePrincipale;
classeFenetre.cbClsExtra = 0;
classeFenetre.cbWndExtra = 0;
classeFenetre.hInstance = NULL;
classeFenetre.hIcon = LoadIcon(NULL, IDI_APPLICATION);
classeFenetre.hCursor = LoadCursor(NULL, IDC_ARROW);
classeFenetre.hbrBackground = (HBRUSH)(1 + COLOR_BTNFACE);
classeFenetre.lpszMenuName = NULL;
classeFenetre.lpszClassName = "classeF";
// On prévoit quand même le cas où ça échoue
if(!RegisterClass(&classeFenetre)) return FALSE;
fenetrePrincipale = CreateWindow("classeF", "Ma première fenêtre winAPI !", WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 400, 300,
NULL, NULL, cetteInstance, NULL);
if (!fenetrePrincipale) return FALSE;
ShowWindow(fenetrePrincipale, modeDAffichage);
UpdateWindow(fenetrePrincipale);
while (GetMessage(&message, NULL, 0, 0))
{
TranslateMessage(&message);
DispatchMessage(&message);
}
return message.wParam;
}
LRESULT CALLBACK procedureFenetrePrincipale(HWND fenetrePrincipale, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CREATE:
CreationTreeview(fenetrePrincipale);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(fenetrePrincipale, message, wParam, lParam);
}
} |