IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Utilisation de DestroyMenu


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut Utilisation de DestroyMenu
    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

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Probablement une question de goût. Faire DestroyMenu te permet aussi de réutiliser la variable locale pour afficher un nouveau menu.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Par défaut
    J'avais peur de passer à coté de quelque chose.
    Merci bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo