Bonsoir,
Je cherche désespérément a comprendre comment initialiser et faire fonctionner un contrôle SysTreeView, mais sans résultat.
Peut-être un bête probleme de link ? Une fonction inadaptée ?
Voici mon code, quelqu'un peut m'aider ?
#include <windows.h>
#include <commctrl.h>
#define ID_SYSTREEVIEW 1000
/** GLOBALES */
HWND hFenetrePrincipale;
HINSTANCE instance;
/** FONCTIONS */
LRESULT CALLBACK FenetrePrincipaleProcedure(HWND fenetrePrincipale, UINT message, WPARAM wParam, LPARAM lParam)
{
static HWND sysList = NULL;
switch (message)
{
case WM_CREATE:
sysList = CreateWindow("SysTreeView32", "Liste", WS_BORDER | WS_TABSTOP | WS_VISIBLE | TVS_HASLINES | TVS_HASBUTTONS, 2, 5, 170, 330, fenetrePrincipale, (HMENU)ID_SYSTREEVIEW, instance, NULL);
return 0;
case WM_COMMAND:
switch (LOWORD(wParam))
{
/*case ID_SYSTREEVIEW:
break;*/
default:
break;
}
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(fenetrePrincipale, message, wParam, lParam);
}
}
APIENTRY int WinMain (HINSTANCE cetteInstance, HINSTANCE precedenteInstance, LPSTR lignesDeCommande, int modeDAffichage)
{
HWND fenetrePrincipale;
MSG message;
WNDCLASS classeFenetre = { 0,
FenetrePrincipaleProcedure,
0,
0,
NULL,
LoadIcon(NULL, IDI_APPLICATION),
LoadCursor(NULL, IDC_ARROW),
(HBRUSH)(1 + COLOR_BTNFACE),
NULL,
"classeF"
};
precedenteInstance = NULL;
lignesDeCommande = NULL;
instance = cetteInstance;
// On prévoit quand même le cas où ça échoue
if (!RegisterClass(&classeFenetre)) return FALSE;
fenetrePrincipale = CreateWindow( "classeF",
"Test",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
600, 400,
NULL, /* Pas de fenêtre parent */
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;
}
Merci !
Afficher la suite