recuperer un ptr sur Doc dans CxxxApp [MFC] - C++ - Programmation
Marsh Posté le 14-04-2003 à 09:14:18
polo021 a écrit : Ben tout est dans le titre je pense. Je voudrais recuperer un pointeur sur mon Document dans la methode InitInstance de la classe CxxxApp pour m'en servir pour la suite. Comment est ce que je dois faire.? Et une autre question aussi. |
Tu as la méthode GetDocument(), membre de la classe CView. Comme tu possèdes un document, je suppose que tu créé une application document/vue, et donc que tu possèdes une CxxxView associée.
polo021 a écrit : |
Je vois pas ou est le problème. Etant donné que la programmation MFC agit comme ceci, on peut supposer que Microsoft sait ce qu'il fait, en tant que créateur des MFC et de Windows...
Marsh Posté le 14-04-2003 à 09:21:28
Harkonnen a écrit : |
oui mais alors pour recuperer un pointeur sur ma vue?
CxxxView* ptr_view = ????;
Harkonnen a écrit : |
Marsh Posté le 14-04-2003 à 09:29:54
Si tu as un doc/vue regarde du cote des DocTemplate qui est cree ds ton App
Marsh Posté le 14-04-2003 à 09:30:53
Harkonnen a écrit : |
Oui bon quand mm c de Ms la que tu parles
Marsh Posté le 14-04-2003 à 09:52:49
VisualC++ a écrit : Si tu as un doc/vue regarde du cote des DocTemplate qui est cree ds ton App |
je crois que je vais choisir la facilite et pas m'embeter avec ca.
Je vais tout simplement tenter de mettre toutes les variables que j'avais dans mon Document dans la classe CxxxApp et donc me servir de cette classe comme de mon document
Marsh Posté le 14-04-2003 à 13:52:48
polo021 a écrit : Ben tout est dans le titre je pense. Je voudrais recuperer un pointeur sur mon Document dans la methode InitInstance de la classe CxxxApp pour m'en servir pour la suite. Comment est ce que je dois faire.? Et une autre question aussi. |
Au moment de l'InitInstance, le document et la vue ne sont pas encore initialisés donc mauvais endroit. Cette méthode sert à faire les initialisations uniques de l'application. Si tu veux faire des initialisations à chaque nouveau document : CDocument:: OnNewDocument() ou alors CView::InitalUpdate()
Quant à mettre le document dans la classe application :
Marsh Posté le 14-04-2003 à 14:01:10
Tetragrammaton IHVH a écrit : |
Je ne fais jamais de nouveau document. L'utilisateur n'a pas le choix, il execute le .exe et le programme demarre, lance la 1ere boite modale (pour son user_ID) et si il est bon on enchaine vers une trentaine d'autres boites modale sinon on le laisse reentrer son userID jusqu'a ce qu'il soit bon.
C'est pour cela que je cherche a lancer la boite de saisie du login directement au demarrage de l'application (sans que l'utilisateur ne doive cliquer sur un bouton ou dans un menu).
Si quelqu'un a une idee...
EDIT : et puis pour le document dans l'application, je me suis mal exprime, ce n'est pas ca que je voulais dire. Mais tout simplement mettre mes variables principales dans la classe CxxxApp au lieu de les mettre dans le document.
Marsh Posté le 14-04-2003 à 14:05:32
polo021 a écrit : |
1) Pour ton idée, je t'ai donné la solution
2) pourquoi fais-tu une appli SDI si c'est pour ne pas utiliser le framework des MFC ? Recode tout depuis le début...
Marsh Posté le 14-04-2003 à 14:12:17
Tetragrammaton IHVH a écrit : |
Tu peux m'expliquer ce que ca veut dire?
Marsh Posté le 14-04-2003 à 14:17:41
polo021 a écrit : |
Marsh Posté le 14-04-2003 à 14:20:51
oui ma question etait idiote, j'en conviens.
Mais que veux tu que j'utilise comme "type" d'application si ce n'est SDI? Et en sachant que je developpe pour windows CE avec Microsoft eMbedded Visual 3.0?
Je pourrais faire un Dialog Box based application mais j'avais commence avec une SDI application et j'ai deja fait pas mal de trucs dedans , je n'ai pas non plus de gros problemes insurmontables donc je ne vois pas trop l'utilite de recommencer tout en dialog based.
Si tu en vois une tu peux toujours m'en faire part.
Je pense au contraire qu'une application est beaucoup plus difficile a mettre en oeuvre en dialog based application que en SDI
http://forum.hardware.fr/forum2.ph [...] h=&subcat=
Marsh Posté le 14-04-2003 à 14:36:50
polo021 a écrit : |
Non, les appli dialog based, c'est nul.
Mais perso, je ne vois pas l'interet de creer une appli SDI si c'est pour ne pas utiliser ses avantages fournis avec (archi document/vue) et se faire chier avec des sales bidouilles du genre, mettre des infos dans le CWinApp alors qu'il serait plus simple de les mettre dans le CDocument.
Mais bon, c'est toi qui code donc tu dois mieux savoir que moi.
Marsh Posté le 14-04-2003 à 14:52:02
Tetragrammaton IHVH a écrit : |
voila on y arrive. Au depart je ne voulais pas mettre de variable dans CxxApp mais bien dans le document. Mais comme je te l'ai dis, je voudrais bien qu'une boite de dialogue apparaisse d'entree a l'execution de mon programme donc on m'a conseille InitInstance de CxxxApp. Or dans cette fameuse premiere boite de dialogue je me sers d'une variable que j'ai mis dans mon document donc ma question etait (titre du topic) comment recuperer un ptr sur doc a partir de initinstance.
Et comme personne ne savait, je me suis dis que j'allais la mettre dans la classe CxxxApp au lieu de la mettre dans mon document.
Tu saisis mieux maintenant?
Marsh Posté le 14-04-2003 à 14:55:32
polo021 a écrit : |
Et pour la 25000ième fois, je t'ai dit d'appeler ta dialogbox dans le CView::InitialUpdate() (où tu peux accéder à GetDocument(). Dis moi, comprends-tu ce que tu lis ?
Bon, il vaut mieux abandonner...
Marsh Posté le 14-04-2003 à 15:04:29
arg vraiment desole
t'avais ecrit
Citation : |
et je suis parti sur le newdocument en oubliant completement ta deuxieme proposition.
ben je m'en vais essayer ca alors.
Merci pour ta patience
Marsh Posté le 14-04-2003 à 09:06:38
Ben tout est dans le titre je pense. Je voudrais recuperer un pointeur sur mon Document dans la methode InitInstance de la classe CxxxApp pour m'en servir pour la suite. Comment est ce que je dois faire.? Et une autre question aussi.
Est ce que c'est un bon style de programmation de lancer la premiere boite modale (qui est a la base de toutes les autres dans le programme) a partir de la methode InitInstance de CxxxApp?
Merci
Message édité par polo021 le 14-04-2003 à 09:29:01