[VC++] Pb avec un menu contextuel

Pb avec un menu contextuel [VC++] - C++ - Programmation

Marsh Posté le 26-06-2002 à 14:35:43    

Je voudrai creer un menu contextuel a l'interieur d'une CListCtrl. Pour cela, j'ai cree mon menu en statique et dans l'evenement click droit sur ma CListCtrl, je fais le code suivant :

Code :
  1. CMenu ContextMenu;
  2. POINT pt;
  3. GetCursorPos(&pt);
  4. ContextMenu.LoadMenu(IDR_MONMENU);
  5. ContextMenu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, GetDlgItem(IDC_MALISTCTRL));


 
Mon menu apparait quand je fais mon click droit mais celui a une largeur tellement petite que je ne vois rien a l'interieur.
Quelqu'un aurait il la reponse a mon probleme ?
 
 


---------------
LOVE & PEACE !!! [:kirvel]
Reply

Marsh Posté le 26-06-2002 à 14:35:43   

Reply

Marsh Posté le 26-06-2002 à 15:45:44    

:bounce:


---------------
LOVE & PEACE !!! [:kirvel]
Reply

Marsh Posté le 26-06-2002 à 16:41:37    

:bounce:  :bounce:


---------------
LOVE & PEACE !!! [:kirvel]
Reply

Marsh Posté le 26-06-2002 à 17:03:18    

:bounce:  :bounce:  :bounce:


---------------
LOVE & PEACE !!! [:kirvel]
Reply

Marsh Posté le 26-06-2002 à 19:51:05    

[:nofret] jeune padawan ke le up avec toi soit [:nofret]


---------------
Mes News
Reply

Marsh Posté le 27-06-2002 à 09:17:10    

J'ai regle mon probleme.
Juste apres avoir appele la fonction LoadMenu, il faut rajouter :
CMenu *PopupMenu = ContextMenu.GetSubMenu(0);
et appeler la fonction :
PopupMenu->TrackPopupMenu(...);
Bien sur, le programme risque de plante si vous n'avez pas de sous-menu.
Autre chose, j'utilisais l'evenement click droit sur la CListCtrl pour afficher mon menu contextuel. Celui-ci s'affiche bien mais lorsque je selectionne un element, il ne se passe rien malgres que j'ai associe un evenement a chaque entree de mon menu.
Pour regler le probleme, il vaut mieux afficher son menu contextuel sur l'evenement OnContextMenu() de la boite de dialogue principale. Ensuite, il suffit juste de verifier a afficher le menu quand on clique a l'interieur de la CListCtrl avec les fonctions GetCursorPos, GetDlgItem et GetWindowRect.
Si vous ne savez pas rajouter un evenement a votre boite de dialogue principale sous VC7 :
http://forum.hardware.fr/forum2.ph [...] subcat=386
Si vous avez une meilleure methode pour afficher un Menu contextuel, votre post sera le bienvenu.


---------------
LOVE & PEACE !!! [:kirvel]
Reply

Marsh Posté le 27-06-2002 à 09:41:54    

Petite rectification :
pas besoin d'utiliser la fct GetCursorPos() etant donne que les coordonnees du click sont deja passees en parametre de OnContextMenu().


---------------
LOVE & PEACE !!! [:kirvel]
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed