Probleme CMenu

Résolu
cs_0xYg3n3 Messages postés 115 Date d'inscription mardi 1 février 2005 Statut Membre Dernière intervention 8 octobre 2007 - 30 avril 2005 à 12:28
cs_Capa6T Messages postés 36 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 15 août 2012 - 30 avril 2005 à 12:50
Bonjour, J'ai une erreur a la compilation


mais je ne vois pas pourquoi


Voici le code:



Code:, ----
if (wParam == 1) // C'est notre icone (champ uID de la structure)

switch(lParam)

{

case WM_LBUTTONDBLCLK : // Double click gauche de la souris

/* On supprime l'icone ajoute dans le systray */

// On initialise une structure necessaire pour detruire l'icone

NOTIFYICONDATA ndata;

ndata.cbSize = sizeof(NOTIFYICONDATA);

ndata.hWnd = CBoutFroidDlg::m_hWnd;

ndata.uID = 1;

/* Appel de la methode Shell_NotifyIcon */

Shell_NotifyIcon(NIM_DELETE,&ndata);

/* On reaffiche l'application */

ShowWindow(SW_SHOW);

break;

case WM_RBUTTONDOWN: // Click droit de la souris

/* On cree un menu pour aider l'utilisateur */

CMenu MenuSystray;

MenuSystray.LoadMenu(IDR_MENU_SYSTRAY);

POINT coordonnee;

GetCursorPos(&coordonnee);

SetForegroundWindow();

MenuSystray.GetSubMenu(0)->TrackPopupMenu(TPM_RIGHTALIGN | TPM_RIGHTBUTTON,

coordonnee.x,

coordonnee.y,

AfxGetMainWnd(),

0);

break;

default: break;

};







Voici l'erreur



Citation:, ----
error C2361: initialization of 'MenuSystray' is skipped by 'default' label










Pour l'instant j'ai seulement enlever le cas default du switch





Merci pour vos reponses

1 réponse

cs_Capa6T Messages postés 36 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 15 août 2012 3
30 avril 2005 à 12:50
Salut,

La variable MenuSystray ne peut être initialisée correctement dans le switch(lParam).
Soit tu met la déclaration de la variable au début de ta fonction de CallBack
ou soit tu mets des crochets autour du case WM_RBUTTONDOWN comme suit:

Bon codage....

case WM_RBUTTONDOWN: // Click droit de la souris
{
/* On cree un menu pour aider l'utilisateur */
CMenu MenuSystray;
MenuSystray.LoadMenu(IDR_MENU_SYSTRAY);
POINT coordonnee;
GetCursorPos(&coordonnee);
SetForegroundWindow();
MenuSystray.GetSubMenu(0)->TrackPopupMenu(TPM_RIGHTALIGN | TPM_RIGHTBUTTON,
coordonnee.x,
coordonnee.y,
AfxGetMainWnd(),
0);
}
break;
3
Rejoignez-nous