SysTreeView - au secours

Y0ch Messages postés 1 Date d'inscription dimanche 31 août 2008 Statut Membre Dernière intervention 13 septembre 2008 - 13 sept. 2008 à 19:21
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 - 13 sept. 2008 à 19:44
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 !

1 réponse

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
13 sept. 2008 à 19:44
il manque l'appel a InitCommonControlsEx pour initialiser les commons controls.
0
Rejoignez-nous