Quitter Application MFC

seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010 - 4 août 2005 à 17:38
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010 - 5 août 2005 à 11:09
Bonjour,
Quelqu'un saurait-il comment empecher l'utilisateur de quitter une application MFC en appuyant sur Escape.
Merci.

18 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 août 2005 à 18:04
Surcharge ton OnCancel() avec {};

ciao...
BruNews, MVP VC++
0
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010
4 août 2005 à 18:18
Excuse moi mais je ne comprend pas !!!
Je suis débutant.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 août 2005 à 18:27
et moi y a longtemps que j'ai laisser choir MFC...

dans la partie
protected:
de ta classe (fichier h) tu ajoutes:
void OnOK() {};
void OnCancel();

ciao...
BruNews, MVP VC++
0
cs_BDel Messages postés 4 Date d'inscription vendredi 9 juillet 2004 Statut Membre Dernière intervention 1 octobre 2005
4 août 2005 à 18:29
Pour redéfinir OnCancel ajoute dans ta classe de dialogue (fichier .h) :



virtual void OnCancel();



puis dans le source .cpp



void CMyDialog::OnCancel()

{

}



Mais cette solution ne fonctionne qu'à moitié, car OnCancel est aussi
appelée si l'on referme le dialogue par la case de fermeture de la
fenêtre.



Autre possibilité : surcharge PreTranslateMessage



virtual BOOL PreTranslateMessage(MSG* pMsg);



BOOL CMyDialog::PreTranslateMessage(MSG* pMsg)

{

if (pMsg->message WM_KEYDOWN && pMsg->wParam VK_ESCAPE)

return true;

return CDialog::PreTranslateMessage(pMsg);

}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010
4 août 2005 à 18:30
Mais dans la fonction OnCancel() dans le fichier cpp je met rien c'est ça ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 août 2005 à 18:36
et ensuite y en a encore pour dire que MFC simplifie la prog Windows.

seb2086>
en direct API tu ferais simplement:
case IDCANCEL:
break;

ciao...
BruNews, MVP VC++
0
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010
4 août 2005 à 18:41
Et sinon comment je fait en MFC ?
Je met quoi dans le fichier cpp
0
BIG_BOSS_001 Messages postés 75 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 30 novembre 2005
4 août 2005 à 18:43
Pour quitter une fenêtre tu fais appel soit à DestroyWindow(); soit Exit(0);

BIG_BOSS
0
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010
4 août 2005 à 18:46
Je ne veut pas quitter l'application je veut au contraire empecher que l'on puisse la quitter au moyen de la touche escape.
Il faut que lorsqu'on appuie sur Escape il ne se passe rien.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 août 2005 à 18:50
seb2086, si tu es sur Paris je peux te donner un bouquin de MFC.

ciao...
BruNews, MVP VC++
0
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010
4 août 2005 à 18:52
Merci c'est gentil mais la je suis plutot sur Toulouse mais tu peut me donner le titre du livre ou un lien ou je pourrait l'acheter si tu veut.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
4 août 2005 à 19:08
http://vecchio56.free.fr/ebook/progmfc/

Si tu es débutant, il faut d'abord que tu connaisse un peu le C++ (entre autres l'héritage)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 août 2005 à 19:11
ben voila, le père noël est arrivé.

ciao...
BruNews, MVP VC++
0
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010
4 août 2005 à 19:15
Ok Merci à tous.
Bonne Soirée.
0
BIG_BOSS_001 Messages postés 75 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 30 novembre 2005
4 août 2005 à 22:27
"Je ne veut pas quitter l'application je veut au contraire empecher que l'on puisse la quitter au moyen de la touche escape"

Désolé j'ai mal lu...

BIG_BOSS
0
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010
5 août 2005 à 09:38
C'est rien BIG_BOSS merci quand meme.
0
cs_BDel Messages postés 4 Date d'inscription vendredi 9 juillet 2004 Statut Membre Dernière intervention 1 octobre 2005
5 août 2005 à 10:18
Dans le fichier d'entête de ta boîte de dialogue en principe appelé
"NomApplicationDlg.h" ajoute simplement ceci (et rien dans le .cpp)



virtual BOOL PreTranslateMessage(MSG* pMsg)

{

if (pMsg->message WM_KEYDOWN && pMsg->wParam VK_ESCAPE)

return TRUE;

return CDialog::PreTranslateMessage(pMsg);

}



Tu peux tester aussi VK_CANCEL si tu veux interdire la sortie avec cette touche.
0
seb2086 Messages postés 96 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 1 février 2010
5 août 2005 à 11:09
Ca me met une erreur à cette ligne :

return CDialog::PreTranslateMessage(pMsg);

error C2352: 'CDialog::PreTranslateMessage' : appel non conforme d'une fonction membre non static
0
Rejoignez-nous