Bonjour,

Je suis en train de me tirer les cheveux sur un problème à la con avec un CTreeCtrl.

Alors, je suis en train de créer une interface se composant d'un arbre à gauche et d'une liste à droite. Il faut remplir la liste de droite avec certains éléments de l'arbre de gauche.
Le principe est qu'au moment d'un double clic sur un élément de l'arbre, cet élément passe dans la liste de droite.
Le principe est tout simple mais j'ai un gros problème technique.

Le problème apparait lors de la suppression de l'élément sur lequel je viens de double-cliquer. Ce n'est pas un crash mais juste une boite de dialogue qui rend inutilisable le soft.
Au bout d'un certain nombre de "DeleteItem" ( 2 ou 3 voir même des fois 1 seul ), j'ai le message suivant qui apparait
User breakpoint called from code at 0x7c911230
et je peux en avoir 3-4 de suite. Ce message vient de NTDLL!. Si je remonte dans la pile j'arrive au CTreeCtrl::eleteItem.

Voici mon code de création de l'élément :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
	TVINSERTSTRUCT tvInsert = {0};
	tvInsert.hParent = TVI_ROOT; //hParent;
	tvInsert.hInsertAfter = TVI_SORT;
	tvInsert.item.mask = TVIF_PARAM | TVIF_TEXT;
	tvInsert.item.pszText = (LPTSTR)(LPCTSTR)sName;
	tvInsert.item.cchTextMax = strlen(tvInsert.item.pszText);
	tvInsert.item.lParam = nIndex;
	HTREEITEM hItem = m_treeUnused.InsertItem ( &tvInsert );
Voici mon code de suppression :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
	HTREEITEM hItem = m_treeUnused.GetSelectedItem ( );
	m_treeUnused.DeleteItem ( hItem );


Personnellement ça fait un moment que je gallère dessus sans en voir le bout alors si quelqu'un à une idée, je suis preneur.

Merci d'avance