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).
En supposant que ce code soit l'impl�mentation de la fonction
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();
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
Partager