Intercepter close et minimize

Résolu
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011
-
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
-
comment intercepter la le clique du bouton MINIMIZE De mon Application pour executer ma fonction de decente en systray ?

merci


sinon,

    case IDCANCEL:

       

        msgQuit = MessageBox(MainDlg,"Are you sure to want to quit ?","RegSpy",MB_YESNO|MB_ICONQUESTION);


        if(msgQuit = IDYES)

        {   

        EndDialog(MainDlg,Select);

        PostQuitMessage(0);

        }

       

        return 1;


quelqu'un pourait me faire le else pour ne pas que mon apllication quite merci d'avance.

9 réponses

Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Salut;


case WM_SYCOMMAD:

if(wParam==SC_MINIMIZE) 

{

// ......

return 0;

}

if(wParam==SC_CLOSE) 

{


// ......


return 0;


}

//.....
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
Ou encore:

case WM_SIZE:
        if(wParam == SIZE_MINIMIZED)
       ...
       break;

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation
<!--
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
Ah et pour:

if(msgQuit = IDYES)
  {   
          EndDialog(MainDlg,Select);
          PostQuitMessage(0);
   }
else
    ....

Si tu veux que ton application ne quitte pas si tu appuie sur Non, bien ne fais pas de else. Si msgQuit n'est pas égal à IDYES, rien ne sera fait et il retournera à sa tâche courante.

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation
<!--
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
En passent, j'espère que ce n'est qu'une faute dans le post mais

ERREUR ICI
if(msgQuit = IDYES) <- Assignation à msgQuit

La bonne solution
if(msgQuit == IDYES) <- Comparaison de msgQuit

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation
<!--
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
    case WM_CLOSE:      
        msgQuit = MessageBox(MainDlg,"Are you sure to want to quit ?","RegSpy",MB_YESNO|MB_ICONQUESTION);

        if(msgQuit = IDYES)
        {   
        EndDialog(MainDlg,Select);
        PostQuitMessage(0);
        }      
        return 0;



Pas besoin du else.
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
case WM_SYSCOMMAND:
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Pour la fermeture, il est préférable de traiter le message WM_CLOSE.
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Tu as raison SAKingdom, j'ai copié collé son code sans y faire attention.
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
Ça va. Je te pardonne ;). D'ailleurs, j'ai répondue la même chose 3 posts plus haut (avec la même erreur :S). Je crois que c'étais ça la cause de son problème avec la fermeture de son application (et pour ça qu'il voulait un else car le if était toujours vrai donc, il quitte même si il clique sur non).

C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
Forum de débats sur la programmation