Classes et fonctions statiques...

Signaler
Messages postés
56
Date d'inscription
mercredi 16 mars 2005
Statut
Membre
Dernière intervention
4 août 2005
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Bonjour ,



J'ai un petit renseignement à vous demander :



J'ai créé une application "MFC AppWizzard (exe)" sous VC++ 6.0.

Mais pour des raisons que je vous épargnerai j'ai besoin de créer des fonctions "static".



Le problème est que, par exemple, si je fais un AfxMessageBox dans la
fonction static, le messageBox ne va pas s'ouvrir dans ma fenetre
courante mais va créer une autre fenetre pour afficher la MessageBox.
Je pense que je perds le contexte (je me trompe p-e de mot...)



Comment à partir d'une fonction statique je peux faire un AfxMessageBox dans la fentre courante Comment recupérer le "contexte"



void Test::Test{}

static void openWindow (){AfxMessageBox("coucou");}

Comment déclarer, dans la fonction static, un pointeur qui pointe vers un objet de la classe Test et qui est l'objet courant

Test *pt = new Test();



Si vous avez des idées n'hésitez pas...



Merci !

3 réponses

Messages postés
933
Date d'inscription
dimanche 1 avril 2001
Statut
Modérateur
Dernière intervention
9 janvier 2012
2
Tu peux faire simplement un MessageBox(GetFocus(), "Ton texte", "Ton titre", 0x40);

@+
Arnotic,
Admin CS, MVP Visual C++
Messages postés
56
Date d'inscription
mercredi 16 mars 2005
Statut
Membre
Dernière intervention
4 août 2005

Merci pour ta réponse mais l'AfxMessageBox etait simplement un exemple.

il est indispensable de récupérer le "contexte" car le problème est identique lorsque j'ouvre une boite de dialogue...
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Tu peux pas obtenir un "objet courant" comme ca. Ca n'a aucun sens pour
le compilateur. C'est a toi de le definir (un objet statique de la
classe). Et c'est a toi de la modifier quand il faut (par exemple quand
le focus change si c'est une fenêtre), et tu utilise cette variable
dans la fonction statique