ListView [Résolu]

Signaler
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
-
Messages postés
199
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
28 février 2008
-
Bonjour a tous,


Voila je tente de créer une listview mais celle-ci ne s'affiche pas la
fonction createwindow me renvoie tjrs un HWND NULL. Voici mon appel :


hwLV = CreateWindow(WC_LISTVIEW,0,WS_CHILD | WS_VISIBLE | LVS_LIST,10,30,100,200,hwnd,NULL,GlobalHInstance,NULL);


Quelqu'un peut m'aider à y voir claire?


Merci d'avance.

17 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
As-tu appelé InitCommonControls() avant?
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Un simple InitCommonControls suffirait

Pour le Ex, il faut aujouter ceci:
#define _WIN32_IE 0x0300 (ou plus si tu veux, pour IE 6, c'est 0x0600)
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
ha nop tien . Juste , je m'en rapllai pas . Effectivement j'avai du le
faire aussi pour la progress bar. Merci du rappel vecchio.
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
Mais voila il me dit que INITCOMMONCONTROLSEX est inexistant, hors j'ai bien inclu commctrl.h et la lib :s.


Je suis sous dev-cpp.
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
Hey merci vecchio ca fonctionne simplement avec InitCommonControles, tu
est un chef  ;) par contre je comprend pas bien pourquoi faire un
#define _WIN32_IE 0x0300 . Cela fait quoi? pour vérifer si on a la
bonne version un ifdef ne suffirait pas? je comprend pas bien.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
regarde dans ton commctrl.h, la déclaration de INITCOMMONCONTROLSEX est précédée d'un #if (_WIN32_IE >= 0x0300)
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
Bon bon, soite je suis un vrai c.. ou ya un truc qui va pas, ma list
s'affiche, enfin c'est un bien grand mot, disaont que j'ai un carré
blanc, j'ai pourtant fait comme tu fait dans ton prog LV pour ajouter
des colone mais elles s'affiche pas.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Tu gères le LVN_GETDISPINFO?
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
MErci mais j'ai trouvé, lol maintenant autre problème je veu ajouter un
item mais je n'y parvient pas. Si j'ai bien compris on doit crée une
structure avec les différents élément à insérer dans chaque colone .
Dans mon cas du text dans la 1er et un int dans l'autre. j'ai donc :


typedef struct colone{

    char szNom[10+1];

    int iI;

}COL;


et c'est la que je m'embrouille. j'ai bien compris qu'il faut passer la
structure a l'élément lParam de la struct LV_ITEM crée et puis faire
appel a ListView_InsertItem(). j'ai bien mis le mask aussi mais cela ne
va quand mm pas.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Ah ben la je peux pas te dire comme ca.
Il faut aussi spécifier iItem et iSubItem
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
Item : Specifies the zero-based index. En claire lol ca sert a quoi et SubItem aussi ca sert a quoi?
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
L'index ou insérer l'item tiens. Tu n'a qu'a mettre les deux à zéro
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Salut,
Item indique l'item (l'élément)
SubItem indique l'index de la colonne contenue dans l'item.
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
voila comment je fait :


typedef struct colone{

        char sz[10];

        int iI;

}COL;


/* déclaration de la variable */

COL * ptCol;


/* Insère ligne. */

    lviItem.mask = LVIF_TEXT | LVIF_PARAM;

    strcpy(ptCol->sz,"julien");

    ptCol->iI = 10;

                               


    lviItem.iItem = 0;

    lviItem.iSubItem = 0;

    lviItem.lParam = (LPARAM)ptCol;

                               


    ListView_InsertItem(hwLV,&lviItem);
Messages postés
1243
Date d'inscription
jeudi 31 mars 2005
Statut
Membre
Dernière intervention
3 août 2016
2
mais cava pas ... et ce même si je prend en compte lpzText
Messages postés
199
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
28 février 2008

Pourquoi tu utilises pas pszText pour afficher ta structure ? Normalement ça doit fonctionner sans problème...

___________________
MVS - Most Valuable Student ( Microsoft)
Messages postés
199
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
28 février 2008

Pour moi ça, ça marche :

ZeroMemory(&LvItem, sizeof(LV_ITEM));
        LvItem.iItem = 0;
        LvItem.iSubItem = 0;
        LvItem.pszText = (char *)szBuffer;
        LvItem.cchTextMax = sizeof(szBuffer);
        LvItem.mask = LVIF_TEXT | LVIF_PARAM;

        ListView_InsertItem(hListView, &LvItem);

___________________
MVS - Most Valuable Student ( Microsoft)