Listview petit probleme

babylone2019 Messages postés 32 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 mars 2008 - 12 juil. 2005 à 16:12
babylone2019 Messages postés 32 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 mars 2008 - 12 juil. 2005 à 17:12
Bonjour,

voila j'ai creer cette fonction pour inserer du texte dans ma list view, mais bon il me retourne -1 des la fonction ListView_InsertItem();
Mais bon comme c'est du code que j'ais modifie j'ais encore du faire une connerie.

BOOL userEditDlg::addUserListMapWay(std::string lector, std::string server, std::string share)
{
char* temp;
//Initialisation de la Structure de la ListView
LVITEM LvItem;
LvItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE;
LvItem.state = 0;
LvItem.stateMask = 0;
LvItem.iItem = 0; //numéro de l'item
LvItem.lParam = 0; //Sert lors d'un tri
LvItem.iSubItem = 0; //index dans la ligne

char *buff;
buff=(char*)malloc(sizeof(char)*4);
//SendDlgItemMessage(this->hUserEditDlg, IDC_USER_EDIT_USER_LIST, LVM_INSERTITEM, itemPos, (LPARAM)&LvItem);

int itemPos = ListView_InsertItem(this->hUserEditUserList,(LPARAM)&LvItem);
itoa(itemPos,buff,10);
MessageBox(NULL,buff,"test",MB_OK);
temp = (char*)malloc(sizeof(char)*lector.length()+1);
strcpy(temp,lector.c_str());
//Lecteur
MessageBox(NULL,temp,"test",MB_OK);
ListView_SetItemText(this->hUserEditUserList,itemPos,0,temp);
free(temp);
//Serveur
temp = (char*)malloc(sizeof(char)*server.length()+1);
strcpy(temp,server.c_str());
MessageBox(NULL,temp,"test",MB_OK);
ListView_SetItemText(this->hUserEditUserList,itemPos,1,temp);
free(temp);
//Partage
temp = (char*)malloc(sizeof(char)*share.length()+1);
strcpy(temp,share.c_str());
MessageBox(NULL,temp,"test",MB_OK);
ListView_SetItemText(this->hUserEditUserList,itemPos,2,temp);
free(temp);


// SetFocus(this->hUserEditUserList);
UpdateWindow(this->hUserEditDlg);
return true;
}

merci

2 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 4
12 juil. 2005 à 16:46
Salut,



LVITEM LvItem;
LvItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE;
LvItem.state = 0;
LvItem.stateMask = 0;
LvItem.iItem = 0; //numéro de l'item
LvItem.lParam = 0; //Sert lors d'un tri
LvItem.iSubItem = 0; //index dans la ligne



Si tu met le flag
LVIF_TEXT, il faut obligatoirement remplir le champ pszText de la structure.

Il faut aussi donner une valeur au champ state, comme LVIS_SELECTED par
exemple. Il me semble qu'aucune des constantes LVIS_ n'est egale a 0,
donc ca peut poser un probleme de mettre 0.
0
babylone2019 Messages postés 32 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 mars 2008
12 juil. 2005 à 17:12
Je pensais que la première commande me permetais de creer une ligne vide.

Puis celle d'apres de m'affecter les valeurs des champs.

Mais je n'ais fais que réutiliser du code, il est possible que je l'ais mal compris.

Merci
0