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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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

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