Bonjour,

j'ai une liste d'objets créée avec la classe CList et je l'affiche dans une combo box.
Je souhaite aussi pouvoir supprimer des éléments de cette liste en les sélectionnant dans la combo box mais ca ne marche pas.
Voilà mon bout de code pour supprimer un élément:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
void CListeMessagesDlg::OnDeleteMsg() 
{
	int iIndex = m_pListMsg->GetCurSel();
	CMessage*	pMessageSel = (CMessage*) m_pListMsg->GetItemData(iIndex);
	((CMainFrame*)	m_pMainFrame)->SupprimerMessage(pMessageSel);
	AfficherListeMessages();
}
code de la méthode SupprimerMessage(pMessageSel):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
void CMainFrame::SupprimerMessage (CMessage* pMessageASupprimer)
{
	if( pMessageASupprimer == NULL)
	{
		return;
	}
	else
	{
		POSITION pos=m_pListeMessages->Find(pMessageASupprimer);
		m_pListeMessages->RemoveAt(pos);
	}
}
et enfin le code de la méthode AfficherListeMessages():
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
void CListeMessagesDlg::AfficherListeMessages()
{
	m_pListMsg = (CComboBox*) GetDlgItem(IDC_COMBO_LIST_MSG);
	m_pListeMessages = ((CMainFrame*)	m_pMainFrame)->GetListeMessages();
	if (m_pListeMessages == NULL)
	{
		return;
	}
	UINT uiNbMessages = ((CMainFrame*)	m_pMainFrame)->GetNbMessages();
	POSITION pos = m_pListeMessages->GetHeadPosition();
	for (UINT ui = 0; ui < uiNbMessages/*(int) uiNbMessages*/ ; ui++)
	{
		m_pMessage = (CMessage*) m_pListeMessages->GetNext(pos);
		CString sNomMessage = m_pMessage->GetNomMessage();
		m_pListMsg->AddString(sNomMessage);
	}
}
Voilà le problème vient du fait que quelque soit l'élément sélectionné le pointeur pMessageSel de la méthode OnDeleteMsg() est toujours à NULL et donc ses champs sont vides...

Si vous voyez d'ou cela peut venir merci de me l'indiquer.

Bien sur la méthode AfficherListeMessages() est appelée dans le InitDialog() de la dialog box donc les variables m_pListMsg et m_pListeMessages sont définies.