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

VC++ .NET Discussion :

Problème avec un ContextMenuStrip et un NotifyIcon


Sujet :

VC++ .NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut Problème avec un ContextMenuStrip et un NotifyIcon
    Bonjour à tous.

    J'essaie actuellement de faire une application qui se logerait en tray lorsque la fenêtre principale serait réduite. Ayant une tray icon, j'ai eu envie de lui adjoindre un menu contextuel pour rendre mon application plus ergonomique. Mais je rencontre un problème qui m'embête beaucoup : En effet, lorsque l'on ouvre le menu contextuel avec le bouton droit sur la tray icon, une entitée vide apparaît dans la barre des tâches. Après moulte recherche, j'ai aperçu cette solution qui apparaissait partout :

    I had the same problem. I could not find a way to achieve this without
    using Reflection. This won't be officially supported, since it uses a
    private method on the NotifyIcon class, but here's what I did (using an
    anonymous method):

    niMain.MouseClick += delegate( object sender, MouseEventArgs e )
    {
    if ( e.Button != MouseButtons.Right )
    {
    niMain.GetType().InvokeMember(
    "ShowContextMenu",

    BindingFlags.InvokeMethod|BindingFlags.Instance|BindingFlags.NonPublic,
    null,
    niMain,
    null
    );
    }
    };

    Dans mon cas, j'ai :
    this->notifyIcon->MouseClick += gcnew System::Windows::Forms::MouseEventHandler(this, &MainFrame::notifyIcon_MouseClick);

    J'ai donc remplacé niMain par notifyIcon et ShowContextMenu par notifyIcon_MouseClick, mais celà ne fonctionne pas. Quelqu'un pourrait-il me dire comment cette portion de code fonctionne, ou s'il a une autre solution s'il vous plaît ?

    Pour info, pour la notifyIcon j'utilise une NotifyIcon et pour le menu contextuel j'utilise un ContextMenuStrip.

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    je n'ai aucune "entité supplémentaire" en utilisant cette méthode http://nico-pyright.developpez.com/t...2/#Lnotifyicon

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut
    Je ne comprends pas, j'ai fait exactement la même chose.

    Cela pourrait-il venir du fait que je développe avec VC++ Express Edition ?

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    non, il n'y a pas de raison, regarde voir cet exemple, pour vérifier que j'ai bien compris la question
    Fichiers attachés Fichiers attachés

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut
    C'est tout à fait ce que je souhaite obtenir, mais je ne comprends pas d'où vient mon problème.

    J'ai même recréé une application vide et suivi les étapes du tutoriel une par une mais, rien à faire :/

    Vous avez fait cet exemple sous VC++, VC++ .net, ou VC++ EE ?

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    visual c++ 2005, version pro, et je n'ai fait vraiment rien de spécial.

    j'ai fait dans l'ordre :

    - créer un nouveau projet CLR/Application
    - ajouter un notifyicon
    - y associer une icone depuis la fenetre de propriétés
    - placer un contextmenustrip sur la forme
    - ajouter un item de menu
    - associer le menu au notifyicon depuis la fenetre de propriétés du notifyicon
    ( - étape facultative, gestion du click sur l'item du menu)

    ctrl+F5 et tout baigne

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut
    Je l'ai fait en WinForm, cela change t'il la donne ?

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    nonon, c'est de ca dont je parlais
    clr/windows form application
    Images attachées Images attachées  

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut
    Je viens de regarder sous VC++ EE, j'ai fait la même chose et pourtant ca ne fonctionne toujours pas

    Auriez-vous la possibilité de regarder mes sources [quasi-vides] s'il vous plait ?

  10. #10
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    pourquoi pas, mais je ne sais pas si je saurai faire mieux

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut
    Voici l'archive.

    Et merci d'avance
    Fichiers attachés Fichiers attachés

  12. #12
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    en regardant ton code, je me rends compte que tu n'as pas du tout fait comme je te l'avais indiqué

    tu as un notifyicon et un traymenu, gérés indépendament, et lors du click sur l'icon, tu affiches le menu avec un trayMenu->Show

    donc, ca n'a rien à voir avec ce que je te propose

    quand tu cliques sur notifyicon, tu as dans la fenetre de propriétés un élément qui s'appelle ContextMenuStrip, et il vaut none
    c'est ici que tu dois renseigné le contextmenustrip que tu auras préalablement posé sur ta form

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut
    C'est le détail qui m'avait échappé

    Encore merci ! Mais vraiment un énorme merci

  14. #14
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    si c'est ok, pense à cliquer sur le bouton

Discussions similaires

  1. problème avec l'objet NotifyIcon
    Par DAGDD dans le forum C#
    Réponses: 0
    Dernier message: 25/06/2009, 10h09
  2. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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