Dans la faqvc , à la question:
Comment afficher un menu popup?

on peut lire:
----------------
A partir des ressources:
Créer un menu dans les ressources (dans l'exemple l'identifiant est IDR_POPUPMENU).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
CMenu menu; 
ClientToScreen(&point); 
menu.LoadMenu(IDR_POPUPMENU); 
ASSERT (menu.m_hMenu != NULL);
CMenu* p_popup=menu.GetSubMenu(0); 
ASSERT (p_popup != NULL);
int nResult = p_popup->TrackPopupMenu(TPM_LEFTALIGN |  TPM_RIGHTBUTTON, point.x, point.y, this);
//Agir en fonction du résultat retourné.
//0 indique que le menu a été annulé
//Sinon, comparer le resultat avec les identifiants des différentes options
menu.DestroyMenu();
En supposant que ce code soit l'implémentation de la fonction
void MainFrame::OnContextMenu(CWnd* pWnd, CPoint p)
que consulte le framework en cas de demande de menu contextuel.

Ma question est la suivante:
La dernière ligne " menu.DestroyMenu() " n'est-elle pas de trop dans la mesure ou l'objet CMenu est créé sur la pile
et que l'appel de son destructeur(au sortir du scope) éxécute automatiquement cette fonction? (dixit doc msdn 2008)

Bref ne peut-on pas s'en passer et laisser l'objet faire son propre nettoyage?

Merci.. Cordialement le petit dernier
pense à mettre la balise code, Merci Farscape