Bonjour,
Je développe actuellement une application MFC de type boîte de dialogue. J'aimerais y inclure un menu contextuel appelé à partir du bouton droit de la souris. J'aimerais ne pas avoir à passer par l'éditeur de ressource (c'est pratique, mais ça devient chiant quand on a des modifs à faire).
Mon problème est le suivant : le menu s'affiche, mais quand je clique sur l'un des éléments, mon appli se ferme.
Voilà le code :
Je me suis inspiré du bout de programme de la FAQ.
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 void COpenglMfcDlg::OnRButtonDown(UINT nFlags, CPoint point) { int i; ClientToScreen(&point); CMenu menu; menu.CreatePopupMenu(); menu.AppendMenu(MF_STRING, 1, "Premiere option"); menu.AppendMenu(MF_SEPARATOR); menu.AppendMenu(MF_STRING, 2, "Deuxieme option"); int Result=menu.TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x, point.y, this); //Agir en fonction du résultat retourné switch (Result) { case 1 : AfxMessageBox("menu 1",MB_OK); break; case 2 : AfxMessageBox("menu 2",MB_OK); break; default : AfxMessageBox("menu annulé",MB_OK); break; } menu.DestroyMenu(); CDialog::OnRButtonDown(nFlags, point); }
Voilà, j'espère que quelqu'un m'aidera à y voir clair. Merci.
Partager