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 :

Probleme de gestion des menus


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Probleme de gestion des menus
    Bonjour a tous.

    Je rencontre un problème avec la gestion des menus sous VC++ 6.0
    J'ai crée un menu via l'outil incorporé a VC et apres je récupere un pointeur dessus dans la classe de ma fenetre via la commande ci dessous.
    Lorsque je veux activer ou desactiver l'option, je fais appel à la commande EnableMenuItem.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    m_prMenu = GetMenu();
    m_prMenu->EnableMenuItem(ID_MENU_SUIVI_TPS_REEL_FICHIER_CHARGER_TRACER,MF_GRAYED);
    Or lorsque j'effectue mon changement d'état de menu, l'application plante et j'arrive au niveau du débogueur à cet endroit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    _AFXWIN_INLINE UINT CMenu::EnableMenuItem(UINT nIDEnableItem, UINT nEnable)
    	{ ASSERT(::IsMenu(m_hMenu)); return ::EnableMenuItem(m_hMenu, nIDEnableItem, nEnable); }
    J'ai l'impression qu'il a perdu ma variable de menu ou alors qu'il n'arrive pas à retouver les bons identifiants correspondants aux options des menus.
    La variable de menu est un pointeur membre à ma classe et à part au démarrage, je n'y touche pas. Donc normalement pas de probleme.

    Que puis-je faire ?

    PS : la suppression d'une classe dans le projet n'y serai-t-elle pas pour quelque chose (genre au niveau de la gestion des identifiants par exemple)

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    que vaut le pointeur m_prMenu ? a mon avis il est null .
    GetMenu echoue.
    le menu créé c'est celui utilisé par le document template (IDR_MAINFRAME par exemple) ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    En fait, je ne pense pas que le GetMenu échoue car au premier démarrage de l'application j'arrive à griser des menus via la procèdure décrite plus haute.

    Par contre, apres l'utilisation de quelques fonctionnalités dans l'application , c'est la que ca plante !
    C'est pour ca, je me demande s'il n'a pas perdu la variable en route. Or je n'y touche pas

    Pour le menu, c'est celui utilisé par la fenetre contenant les variables de controle. Je l'ai associé via l'editeur de boite de dialogue à ma fenetre.

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    il manque MF_BYCOMMAND avec MF_GRAYED : MF_GRAYED | MF_BYCOMMAND

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Je viens d'essayer et malheureusement ca ne marche pas

    Ca me renvoie au même endroit que citer plus haut. Visiblement il a quelque chose qu'il n'aime pas.

    Je me demande si je ne devrais pas faire systematique un GetMenu avant de modifier mes menus. De cette sorte je suis sur de pointer au bon endroit.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Bon visiblement tu avais raison. A un moment il a l'air de mettre NULL dans m_prMenu.

    Donc en la réinitialisant avec GetMenu avant chaque modification de menu, ca marche sans probleme.

    Apres pourquoi il perd la variable m_prMenu, ça je n'arrive pas à trouver...

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

Discussions similaires

  1. gestion des menus
    Par adabeno dans le forum Oracle
    Réponses: 1
    Dernier message: 12/06/2006, 13h12
  2. Gestion des menus?
    Par volontier dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 03/06/2006, 14h02
  3. VB6 - gestion des menus d'une application
    Par lhirsute dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/01/2006, 19h17
  4. Probleme de gestion des controls
    Par Ob1 dans le forum Windows
    Réponses: 2
    Dernier message: 16/07/2005, 10h38
  5. [Oracle]probleme de gestion des utilisateurs
    Par gentarik dans le forum Oracle
    Réponses: 5
    Dernier message: 09/03/2005, 12h58

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