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

Windows Discussion :

Un menu avec click droit!


Sujet :

Windows

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 87
    Points : 77
    Points
    77
    Par défaut Un menu avec click droit!
    Bonjour

    Je découvre le c++ et là, J'arrive à afficher un brin de menu avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	case WM_RBUTTONDOWN:
    	{   hMenu = LoadMenu(hInst,(LPCWSTR)IDR_CURSOR_MENU );
    		POINT a_Point;
    		if(GetCursorPos(&a_Point))
    			TrackPopupMenu(hMenu,NULL,a_Point.x,a_Point.y,NULL,hWnd,NULL);
    
    	}
    les titres ne s'affichent pas. Quelqu'un a une idée? J'ai cherché sur la msdn, mais je n'ai pas trouvé.

    Merci

  2. #2
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 87
    Points : 77
    Points
    77
    Par défaut A moins que ..
    Suis-je obligé de passer par une HMENU hSousMenu = GetSubMenu(hMenu,0); ?

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 87
    Points : 77
    Points
    77
    Par défaut Non, j'insiste..
    J'ai doublé mon menu dans un sous menu et j'ai fait une GetSubMenu, en gros ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
    IDR_CURSOR_MENU MENUEX
    {
        POPUP "element", 0, MFT_OWNERDRAW, 0
        {
            MENUITEM "&Move", IDM_MOVE, 0, 0
            MENUITEM "&Delete", IDM_DELETE, 0, 0
            MENUITEM "", 0, MFT_SEPARATOR, 0
            MENUITEM "&Send to Back", IDM_SENDTOBACK, 0, 0
        }
        POPUP "no element", 0, MFT_OWNERDRAW, 0
        {
            MENUITEM "&Line", IDM_ELEMENT_LINE, 0, 0
            MENUITEM "&Rectangle", IDM_ELEMENT_RECTANGLE, 0, 0
            MENUITEM "&Circle", IDM_ELEMENT_CIRCLE, 0, 0
            MENUITEM "Cur&ve", IDM_ELEMENT_CURVE, 0, 0
            MENUITEM "&Text", IDM_ELEMENT_TEXT, 0, 0
            MENUITEM "", 0, MFT_SEPARATOR, 0
            MENUITEM "Blac&k", IDM_COLOR_BLACK, 0, 0
            MENUITEM "&Red", IDM_COLOR_RED, 0, 0
            MENUITEM "&Green", IDM_COLOR_GREEN, 0, 0
            MENUITEM "&Blue", IDM_COLOR_BLUE, 0, 0
        }
    	POPUP "Tst",0,MFT_OWNERDRAW,0
    	{
    		 POPUP "element", 0, MFT_OWNERDRAW, 0
    		{
    			MENUITEM "&Move", IDM_MOVE, 0, 0
    			MENUITEM "&Delete", IDM_DELETE, 0, 0
    			MENUITEM "", 0, MFT_SEPARATOR, 0
    			MENUITEM "&Send to Back", IDM_SENDTOBACK, 0, 0
    		}
    		POPUP "no element", 0, MFT_OWNERDRAW, 0
    		{
    			MENUITEM "&Line", IDM_ELEMENT_LINE, 0, 0
    			MENUITEM "&Rectangle", IDM_ELEMENT_RECTANGLE, 0, 0
    			MENUITEM "&Circle", IDM_ELEMENT_CIRCLE, 0, 0
    			MENUITEM "Cur&ve", IDM_ELEMENT_CURVE, 0, 0
    			MENUITEM "&Text", IDM_ELEMENT_TEXT, 0, 0
    			MENUITEM "", 0, MFT_SEPARATOR, 0
    			MENUITEM "Blac&k", IDM_COLOR_BLACK, 0, 0
    			MENUITEM "&Red", IDM_COLOR_RED, 0, 0
    			MENUITEM "&Green", IDM_COLOR_GREEN, 0, 0
    			MENUITEM "&Blue", IDM_COLOR_BLUE, 0, 0
    		}
    	}
    }
    De tout petit triangle apparaissent, une popup s'affiche en cliquant dessus mais toujours pas de titre. Je suis un peu deçu, pas de barre de titre dans un menu, je suis surpris...

    Personne pour de l'aide?

  4. #4
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Au lieu de traiter WM_RBUTTONDOWN, tu devrais plutôt traiter WM_CONTEXTMENU, ou au pire WM_RBUTTONUP. Pourquoi tes menus sont-ils "Owner Draw" (MFT_OWNERDRAW) ? Tu sais ce que ça implique ? (Que tu dois dessiner toi-même tes menus). Je t'invite à lire cet article, surtout la partie sur les menus contextuels.

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    PS: Pour les ressources, je te conseille de préférer la macro MAKEINTRESOURCE() à un cast nu (même si la macro fait la même chose).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 87
    Points : 77
    Points
    77
    Par défaut
    Ok, ça marche, effectivement, pour que mes titres s'affichent correctement, tout doit se passé dans le message WM_CONTEXTMENU, et enlevé MFT_OWNERDRAW...
    Merci pour tout...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    case WM_CONTEXTMENU:
    		
    		hMenuPopup = GetSubMenu(hMenu,2);
    		TrackPopupMenu(hMenuPopup, 0, LOWORD(lParam), HIWORD(lParam), 0, hWnd, NULL);
    
        break;
    Avec pour coordonnée de souris : LOWORD(lParam), HIWORD(lParam)


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

Discussions similaires

  1. [Dojo] Creer un menu sur click droite sur les ligne d'une grid
    Par devkaty dans le forum Bibliothèques & Frameworks
    Réponses: 8
    Dernier message: 26/01/2010, 15h47
  2. Afficher menu avec Clic Droit dans un userform
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/04/2008, 11h12
  3. problème avec Click droit de la souris
    Par patou41000 dans le forum C++/CLI
    Réponses: 2
    Dernier message: 22/05/2007, 10h32
  4. Menu contextuel click droit de la souris
    Par topolino dans le forum Windows
    Réponses: 3
    Dernier message: 21/02/2007, 10h47
  5. rajouter une item sur le menu contextuel click droit
    Par sony351 dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 23/02/2006, 14h19

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