bonjour j'ai coder un bouton sur mon programme afin qu'il mette une icone dans la barre de tray ( a coté de l'heure) a cette icone j'y ai ajouter un menu déroulant le problème est que lorsque je clique sur un des items du menu je n'execute pas le code correspondant (en mode debug aucun passage dans l'evenement command correspondant a l'item ) voila le code que j'ai mi :
hWnd=::FindWindow(NULL,
"Test");
TrayIcon.cbSize = sizeof(NOTIFYICONDATA);
TrayIcon.hWnd = hWnd;
TrayIcon.uID = id;
TrayIcon.uFlags = NIF_MESSAGE| NIF_ICON | NIF_TIP;
TrayIcon.uCallbackMessage = WM_TRAY_MESSAGE;
TrayIcon.hIcon =LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE (IDR_MAINFRAME));
Shell_NotifyIcon(NIM_ADD, &TrayIcon);
// ShowWindow(SW_HIDE); ce bout de code fonctionne bien vu que l'icone se met bien dans la barre de tray, puis j'ai une fonction qui intercepte le message venant de l'icone dans le systay :
LONG CLecteurDlg::OnTrayNotify(WPARAM wParam, LPARAM lParam)
{
POINT pt;
switch (lParam)
{
case WM_LBUTTONDOWN:
AfxMessageBox("Test OK");
break;
case WM_RBUTTONDOWN:
case WM_CONTEXTMENU:
GetCursorPos(&pt);
CMenu myMenu;
myMenu.LoadMenu(IDR_MENU2);
::SetForegroundWindow(hWnd);
myMenu.GetSubMenu(0)->TrackPopupMenu(TPM_RETURNCMD |TPM_RIGHTBUTTON,pt.x, pt.y, this);
//DestroyMenu(myMenu);
break; }
return 1; }
sa sa fonctionne egalement car le menu s'affiche si je clique droit sur l'icone, je précise aussi que j'ai déjas un menu de créer pour ma fenetre d'application et un autre pour l'icone tray c'est pour cela que j'ai mi (IDR_MENU2)
donc voila j'ai créer la fonction correspondant au item du menu de l'icone tray mais je n'y accede pas
donc si quelqu'un peut m'aider sa serai gentil
merci d'avance