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 Message édité par backdafuckup le 02-05-2003 à 11:44:42
|