IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Récuperer un Document


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Par défaut Récuperer un Document
    Bonjour,

    Debutant en C++, je realise un jeu de Poker avec les MFC.
    Je galere un peu avec les MFC, en effet je travaille sur un Document PokerGameDoc qui cree un jeu de Poker (class jeu)
    J'ai donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CPokerGameDoc::CPokerGameDoc()
    {
    	// TODO : ajoutez ici le code d'une construction unique
    	jeuPoker = Jeu();
    	jeuPoker.initialiseJoueur();	
    }
    Au cours du jeu, je suis amene a utiliser des fonctions de la class Jeu.

    J'aimerai pouvoir acceder au document CPokerGameDoc depuis la class Jeu.

    Malheuresement la commande ci dessous ne marche pas:
    CPokerGameDoc *pDoc = (CPokerGameDoc*)GetDocument();

    La class Jeu n'est ni un CDocument ni un CView.

    La raison pour laquelle je desire faire cela est de pouvoir faire:
    pDoc->UpdateAllViews(this);
    mais aussi de pouvoir activer des boutons d'une autre classe de type CFormView.

    J'espere avoir ete clair et je vous remercie par avance de tout ce que vous pourrez me conseiller..

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    tu peux en dire plus sur ta classe de jeu .
    je ne vois pas la raison de faire un updateallview pour rafraichir, si la classe de vue ne fait pas partie de l'architecture document/view ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Par défaut
    Oui bien sur.

    La class Jeu cree mes joueurs, mes cartes et permet le deroulement d'une partie.
    Par exemple elle contient la fonction:
    fairePremierTourMise()
    Cette fonction permet a chaque joueur (hors utilisateur) de miser de l'argent (small blind, big blind etc...).
    Quand c'est au tour de l'utilisateur de jouer une CFormView permet a l'utilisateur de jouer (call,raise,fold). La CFormView recupere le Document et relance une fonction de la classe Jeu pour continuer le jeu. (faireTourMise).

    Ce que je voudrais faire par exemple, c'est pouvoir afficher une fleche rouge sur le joueur qui est entrain de jouer. Pour cela chaque joueur a une position et la fonction OnDraw de CPokerGameView tracerai cette fleche rouge.

    J'aurai donc besoin de faire un refresh depuis ma fonction FaireTourMise de la class Jeu.

    Je sais pas si c'est clair? Desole debutant...

    PS: dsl pr les accents, clavier qwerty

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut,
    En toute logique, la modification de l'état de jeuPoker sera consécutive à soit une action IHM, soit un évènement type Time, soit à une 'boucle'. Dans les 2 premiers cas, il est évident que cela transite d'abord par une des classes du framework (Document/Frame ou View). C'est certainement à niveau qu'il faut solliciter l'UpdateAllViews. Dans le troisième cas, ça peut se discuter.
    A priori, je dirais que jeuPoker devrait être indépendant du framework que tu utilises (pour pouvoir porter ton 'moteur' de jeu sur une autre plateforme). Donc, il devrait être 'piloté' par Document ou au pire par la frame.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Par défaut
    J'ai pas tout compris (notamment IHM?).
    En effet je transite par la CFormView,

    - CPokerGameDoc instancie un jeu
    Jeu jeuPoker

    - PartieGauche (CFormView) attend que l'utilisateur clique sur "nvelle partie"
    l'evenement declencher est alors:
    pDoc->jeuPoker.fairePremierTourMise()
    ou pDoc est issue de GetDocument() sur CPokerGameDoc.

    -cette fonction fait jouer les 3 premiers joueurs de l'ordinateur

    -une fois cette fonction finit (on revient dans l'evenemt du bouton nvelle partie), je met a jour ma view.
    Apparait donc ttes les actions que les joueurs ont fait (leur tapis est modifie, leur etat aussi) Si jamais un joueur s'est couche alors il a disparu...
    Mais cette mise a jour ne se fait qu'apres que tout le monde ait joue! i.e elle ne se fait pas au moment meme ou le joueur joue (ce qui m'empeche notamment de dessiner une fleche rouge sur celui qui joue entre autre)...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Par défaut
    Desole je vous a pas remercie,

    merci de vos reponses!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récuperation du document d'alfresco
    Par franco9 dans le forum Alfresco
    Réponses: 0
    Dernier message: 14/11/2013, 16h01
  2. [WD-2007] récuperer un document word non-enregistré
    Par Bassel dans le forum Word
    Réponses: 4
    Dernier message: 08/07/2011, 18h00
  3. Réponses: 2
    Dernier message: 26/04/2009, 00h56
  4. Réponses: 6
    Dernier message: 31/07/2008, 21h18
  5. Récuperer un xml d'un Document
    Par Sylario dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 21/04/2006, 10h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo