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 :

Se balader de frame en frame pendant leur création


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 96
    Par défaut Se balader de frame en frame pendant leur création
    Bonjour,

    J'aimerais pouvoir, comme l'indique le titre, me balader de frame en frame pendant la création de frames.
    Explications :
    J'ouvre un document, ce qui génère plusieurs frames. La fonction OpenDocumentFile() que j'ai redéfinie se place toujours sur la dernière frame créée avant d'en créer une nouvelle. Ce que je souhaiterais, c'est que ceci ne soit pas visible par l'utilisateur. J'aimerais donc pouvoir visualiser les vues des deux ou trois premières frames, par exemple, sans que l'application ne soit bloquée par la création ni que le focus ne soit placé sur la frame créée.
    Actuellement ma solution ne me convient pas : à chaque création de frame je réactive la première, ce qui est moche et pas du tout vendeur...

    Y aurait-il une solution autre que de passer par du multi-threading ? (J'entends par là lancer un thread par frame pour la création)
    Je dis cela car j'ai déjà eu à les utiliser une fois, sans succès... et j'ai peur que cela soit délicat puisque les threads devraient lancer des fonctions redéfinies dans une architecture particulière...

    D'avance merci !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 96
    Par défaut
    Quelques explications pour ce soit plus explicite :

    L'application sur laquelle je développe permet d'ouvrir un certain type de documents. Ces documents sont analysés et chaque partie indépendante du document fait l'objet d'une nouvelle frame (CDocument * + CView *). Pour le moment voici comment se déroule le processus d'ouverture des frames :
    - La classe application appelle OnFileOpen() (CWinApp) par défaut.
    - OnFileOpen appelle CWinApp::OpenDocumentFile(LPCTSTR lpszFileName). J'ai redéfini cette méthode pour qu'elle appelle CDocTemplate::OpenDocumentFile(LPCTSTR lpszFileName)
    - OpenDocumentFile() appelle ensuite OnOpenDocument() de ma classe qui hérite de CDocument.
    - CDocTemplate::OpenDocumentFile() finit par retourner un pointeur vers mon objet héritant de CDocument.
    - A la réception de ce pointeur l'application initialise la vue associée puis appelle CMyApp::OpenDocumentFile()...

    Visuellement, on voit une première frame s'activer, ensuite une seconde est activée (la première n'a alors plus le focus et est mise en arrière plan), puis une troisième et ainsi de suite, jusqu'à ce qu'il n'y ait plus de frame à créer.
    Ce que je recherche, c'est qu'à la création de la seconde frame la première reste en avant-plan. Une fois la seconde créée, je peux activer la frame alors même que la troisième frame est en cours de création.

    Actuellement il m'est impossible de le faire. Le focus est toujours donné à la frame qui vient d'être activée et tant que le fichier n'a pas entièrement été ouvert, l'application est bloquante (d'où l'idée de gérer ça avec des threads).
    Maintenant je me dis qu'il y a peut-être une solution plus simple que de travailler avec les threads (puisque j'ai des données à considérer qui sont dépendantes les unes des autres, entre autres les différents pointeurs CDocument et CView que j'utilise).

    L'idée est de pouvoir travailler avec la première frame (j'entends par là la consulter de façon intemporelle) alors même que les autres sont en cours de création, et pouvoir changer de frame en activant une frame créée.

Discussions similaires

  1. Logiciels proposant d'installer chrome pendant leur installation
    Par Flaburgan dans le forum Général Conception Web
    Réponses: 8
    Dernier message: 30/11/2011, 19h51
  2. Film : Avancer frame par frame ?
    Par Pink_Floyd dans le forum MATLAB
    Réponses: 4
    Dernier message: 20/05/2011, 12h07
  3. Réponses: 86
    Dernier message: 28/05/2009, 23h12
  4. Gestion d'animations frame par frame
    Par tib0000 dans le forum Moteurs 3D
    Réponses: 4
    Dernier message: 10/01/2008, 06h57
  5. Récupération de valeurs frame dans frame
    Par Greggggggg dans le forum Langage
    Réponses: 7
    Dernier message: 14/08/2006, 17h26

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