backdafuckup Back to da old skool | Je travaille sous VC++ 6.
J'essaie de créer un menu (un popupmenu) accessible gràca au click droit sur le trayicon.
Voici mon code :
Code :
- LRESULT CPremiereAppliDlg::OnTrayMessage(WPARAM wParam, LPARAM lParam)
- {
- if (lParam == WM_RBUTTONDOWN)
- {
- // bouton droit enfoncé
- CMenu menu;
- CPoint pt;
- GetCursorPos(&pt);
- //création d'un menu
- menu.CreateMenu();
- menu.AppendMenu(MF_STRING,IDM_OPENDLG,"Ouvrir..." );
- menu.AppendMenu(MF_STRING,IDM_PARAM,"Paramètres avancés." );
- menu.AppendMenu(MF_SEPARATOR);
- menu.AppendMenu(MF_STRING,IDM_QUITTER,"Fermer l'application." );
- CMenu * m = menu.GetSubMenu(0);
- //if (!menu.LoadMenu(IDR_MENUTRAY)) //ne s'applique pas
- //s'il y a
- //création d'un
- //menu manuellement
- // return 0;
- CMenu* m = menu.GetSubMenu(0);
- if (!m)
- return 0;
- //MessageBox("Salut","Salut",MB_OK);
- ::SetForegroundWindow(m_hWnd); //nécessaire, cause bug windows
- m->TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);
- :: PostMessage(m_hWnd, WM_NULL, 0, 0);
- }
- }
- ...
|
Ca ne marche pas. Le programme sort une erreur lorsque je fais un click droit.
Je suis débutant en C++, même en objet (on peut le dire), mais j'ai du mal à comprendre ces erreurs.
La première chose que j'avais tenté était d'appeler un menu créer grâce à Visual C++, mais il y avait une erreur à l'appel de ce menu (le programme n'associait pas l'ID du menu au menu lui même ).
Voila, si vous pouvez m'aider, c'est cool. Merci d'avance ![:jap: :jap:](https://forum-images.hardware.fr/icones/smilies/jap.gif) Message édité par backdafuckup le 02-05-2003 à 11:44:42
|