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 :

Question sur les IHM [Infos]


Sujet :

MFC

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Par défaut Question sur les IHM
    Bonjour,

    je souhaiterai réaliser une IHM en C++ sous Visual C++ avec l'aide des MFC.

    Je veux pouvoir être capable d'avoir une même fenêtre permettant de

    visualiser de trois façon différentes un même document.

    Dans un premier mode, la fenêtre aura une séparation horizontale, dans une autre verticale et dans une troisième la fenêtre sera en trois parties.

    Je sais que pour le faire il faut utiliser la classe CSplitterWnd, mais je ne

    vois pas comment l'utiliser pour que, par exemple, en cliquant sur l'un des

    boutons de la menubar, on passe d'une vue à l'autre, sans que le document ne change pour autant.

    Pourriez vous m'aider?

  2. #2
    mat.M
    Invité(e)
    Par défaut
    Oui il faut des CSplitterWnd en utilisant conjointement des CFormView et CView éventuellement.
    Dans le MSDN il ya l'exemple VIEWEX qui montre l'exemple des CSplitterWnd.
    Pour initialiser les CSplitterWnd le faire dans la classe CMainFrame ;
    Pour créer un "pane" , créer une "dialog" dans l"éditeur de ressources avec les propriétés "Child" et "None" , là faire hériter de CFormView.
    Pour créer un "Pane" représentant une CView simplement ajouter une nouvelle classe héritant de CView ou CScrollView

  3. #3
    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,
    quand tu parles de document c'est dans le sens MFC ?
    que veux tu dire par :
    en cliquant sur l'un des
    boutons de la menubar, on passe d'une vue à l'autre, sans que le document ne change pour autant.
    quelle vue ?, puisque tu n'as qu'une seule fenetre.


  4. #4
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Par défaut précisions
    Tout d'abord, merci pour votre aide

    Pour répondre aux questions de farscape :
    1) Oui, je parle de document dans le sens MFC.
    2) J'ai du mal m'exprimer... ce que j'entendais par "vue", c'est plutôt une mise en forme de l'interface. Ce que je voudrais pouvoir faire, c'est, par exemple :
    Pouvoir en cliquant sur un bouton, passer d'une fenêtre dans laquelle on aurait une image en haut et un texte en bas, à une fenêtre où on retrouve le même texte à droite et un dialog sur la gauche avec des boutons et des champs textes, etc.

    Concernant l'exemple de viewex dont parle mat.M :
    Viewex fait à peu près ce que je veux au niveau de la "mise en page", mais ce que je voudrais, ce n'est pas avoir le choix de la répartition des fenêtres lorsque je crée un nouveau document. Ce que je veux c'est créer (ou charger) un et un seul document et pouvoir ensuite le visionner dans des interfaces différentes et passer de l'une à l'autre autant que je veux. Or ce que fait viewex c'est de demander à l'utilisateur la façon dont sera présentée la fenêtre à la création d'un nouveau document.

    mmmm je ne sais pas si je suis clair...

  5. #5
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    salut,

    2) tu parles de "vue" au sens du pattern MVC (Modèle-Vue-Contrôleur). l'ambiguïté réside dans le fait qu'en MFC on a des CView (vues) et des CDocument (documents) qui n'ont rien à voir avec les vues MVC et les documents (fichiers de données...).
    et hop en éclaircissant ce point, je fais une levée de dégénérescence (jargon matheux)

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Par défaut oui
    C'est, (en bien mieux formulé je te l'accorde), exactement ce que je voulais dire.

    Par contre ça fait un moment que je galère avec les CSplitter et je ne vois vraiment pas comment faire ce que je veux faire...

    Question subsidiaire : c'est quoi une "assertion failure"? (Je suis très fort pour en faire en ce moment...)

  7. #7
    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 Re: oui
    Citation Envoyé par Aradesh
    C'est, (en bien mieux formulé je te l'accorde), exactement ce que je voulais dire.

    Par contre ça fait un moment que je galère avec les CSplitter et je ne vois vraiment pas comment faire ce que je veux faire...

    Question subsidiaire : c'est quoi une "assertion failure"? (Je suis très fort pour en faire en ce moment...)
    c'est quand tu essaye d'acceder à quelque chose et que celui ci et ben il est pas pret /initialisé .
    exemple acceder à une fonction membre d'une fenetre et le handle de fenetre est null .
    ou une fonction fonction d'une classe dont l'adresse de l'objet est null .
    on peut en trouver des tas comme ça ...

  8. #8
    mat.M
    Invité(e)
    Par défaut
    Pouvoir en cliquant sur un bouton, passer d'une fenêtre dans laquelle on aurait une image en haut et un texte en bas, à une fenêtre où on retrouve le même texte à droite et un dialog sur la gauche avec des boutons et des champs textes, etc.
    Le mieux , c'est ce que je fais dans un projet utilisant un splitter , c'est d'obtenir uun pointeur sur le DOC

    Par exemple si tu as une CFormView qui constitue un "pane" , bref une partie des vues fractionnables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CMonAppliDoc *pDoc=(CMonAppliDoc *)GetDocument();
     
    pDoc->UpdateAllViews (this);
    pDoc->FaireAction();
    		Invalidate();

  9. #9
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Par défaut autre question sur les splitters
    Est-il possible d'effacer les splitters d'une fenêtre même ils ont été crées grâce à CreateStatic???

    Ou alors, est il possible d'empêcher un utilisateur de redimmensionner les fenêtres en bougeant les splitters?

    Remarque :
    Pour l'instant pour "effacer" une vue je modifie le splitter en mettant la taille des colonnes ou lignes à 0, comme ça :

    m_wndSplitterV.SetColumnInfo(0,0,0);

    mais comme l'utilisateur peut les agrandir de nouveau, c'est nul...

  10. #10
    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,
    pour figer le splitter voir post it faq:
    http://www.developpez.net/forums/vie...598885#1598885


  11. #11
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 79
    Par défaut cool merci
    Merci beaucoup, je devrai m'en sortir avec tout ça.

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

Discussions similaires

  1. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49
  2. question sur les vertex buffer et index buffer
    Par airseb dans le forum DirectX
    Réponses: 9
    Dernier message: 25/08/2003, 02h38
  3. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59
  4. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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