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 :

encore des menu popup


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm� Avatar de meli0207
    Inscrit en
    Novembre 2004
    Messages
    208
    D�tails du profil
    Informations personnelles :
    �ge : 42

    Informations forums :
    Inscription : Novembre 2004
    Messages : 208
    Par d�faut encore des menu popup
    Bonjour,

    voila je cr�e un menu dans l'�diteur de ressources, son ID est IDR_MENUPOPUP.

    Je voudrais l'afficher lors du clic droit donc :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void CInterfaceDlg::OnRButtonDown(UINT nFlags, CPoint point) 
    {
    	CMenu menu; 
            ClientToScreen(&point); 
            menu.LoadMenu(IDR_MENUPOPUP); 
            ASSERT (menu.m_hMenu != NULL );
            int nResult = menu.TrackPopupMenu(TPM_LEFTALIGN |               TPM_RIGHTBUTTON, point.x, point.y, this);
            menu.DestroyMenu();
    }

    Le menu s'affiche effectivement, il contient le bon nombre de lignes mais il est vide ...

  2. #2
    Membre �m�rite Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    D�tails du profil
    Informations personnelles :
    �ge : 53

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Par d�faut
    Il est possible que la ligne menu.destroy soit d�j� pass�e par l� lorsque ton menu s'affiche. Tu dois tester son retour, et seulement apr�s passer au menu.destroy.

    Ton code doit �tre bloquant avant le destroy, sinon, boucle de message oblige, lorsque le menu s'affiche, il est peut �tre en cours de destruction.

    Tu as v�rifi� qu'il y a bien des items � afficher?

  3. #3
    R�dacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par d�faut Re: encore des menu popup
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    void CInterfaceDlg::OnRButtonDown(UINT nFlags, CPoint point) 
    {
    	CMenu menu; 
            ClientToScreen(&point); 
            menu.LoadMenu(IDR_MENUPOPUP); 
            ASSERT (menu.m_hMenu != NULL );
            menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);
    }
    : �a marche ?

  4. #4
    Membre confirm� Avatar de meli0207
    Inscrit en
    Novembre 2004
    Messages
    208
    D�tails du profil
    Informations personnelles :
    �ge : 42

    Informations forums :
    Inscription : Novembre 2004
    Messages : 208
    Par d�faut
    Citation Envoy� par Caine
    Il est possible que la ligne menu.destroy soit d�j� pass�e par l� lorsque ton menu s'affiche. Tu dois tester son retour, et seulement apr�s passer au menu.destroy.

    Ton code doit �tre bloquant avant le destroy, sinon, boucle de message oblige, lorsque le menu s'affiche, il est peut �tre en cours de destruction.

    Tu as v�rifi� qu'il y a bien des items � afficher?
    J'ai essay� en testant le resultat avant de passer au menu.destroy mais c'est le m�me probl�me

    Oui il y a bien des items � afficher

  5. #5
    Membre confirm� Avatar de meli0207
    Inscrit en
    Novembre 2004
    Messages
    208
    D�tails du profil
    Informations personnelles :
    �ge : 42

    Informations forums :
    Inscription : Novembre 2004
    Messages : 208
    Par d�faut Re: encore des menu popup
    Citation Envoy� par bigboomshakala
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    void CInterfaceDlg::OnRButtonDown(UINT nFlags, CPoint point) 
    {
    	CMenu menu; 
            ClientToScreen(&point); 
            menu.LoadMenu(IDR_MENUPOPUP); 
            ASSERT (menu.m_hMenu != NULL );
            menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);
    }
    : �a marche ?
    Ce code affiche seulement le 1er sous menu du menu que j'ai cr�� dans l'�diteur de ressource

  6. #6
    Membre confirm� Avatar de meli0207
    Inscrit en
    Novembre 2004
    Messages
    208
    D�tails du profil
    Informations personnelles :
    �ge : 42

    Informations forums :
    Inscription : Novembre 2004
    Messages : 208
    Par d�faut
    En cr�ant mon menu comme sous menu d'un item qui ne sert qu'� l'ouvrir, ca marche.

  7. #7
    R�dacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par d�faut
    ah ok ! je pensais que c'est ce que tu avais fait d�s le d�part. au temps pour moi j'aurais du pr�ciser.

  8. #8
    Membre confirm� Avatar de meli0207
    Inscrit en
    Novembre 2004
    Messages
    208
    D�tails du profil
    Informations personnelles :
    �ge : 42

    Informations forums :
    Inscription : Novembre 2004
    Messages : 208
    Par d�faut
    c'est pas tr�s logique je trouve

  9. #9
    R�dacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par d�faut
    au 1er abord, c'est pas forc�ment �vident.

    la logique est que le menu contextuel est l'�quivalent du menu d�roulant de la barre de menu classique. donc il s'agit bien de construire une barre de menu "vide", d'y rajouter un menu d�roulant (qui constituera le menu contextuel) et de l'appeler avec menu.GetSubMenu(0).

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Encore des probl�mes avec le BDE
    Par Flint dans le forum C++Builder
    R�ponses: 19
    Dernier message: 31/12/2007, 23h26
  2. R�ponses: 8
    Dernier message: 10/08/2004, 11h49
  3. probleme de date (toujours et encore des dates)
    Par Yannesco dans le forum SQL
    R�ponses: 3
    Dernier message: 02/02/2004, 19h04
  4. Comment cr�er un menu popup style XP ?
    Par chaours dans le forum Composants VCL
    R�ponses: 4
    Dernier message: 29/09/2003, 09h38

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