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 :

Problèmes avec des vues


Sujet :

MFC

  1. #21
    Membre averti
    Inscrit en
    Novembre 2003
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 54
    Par défaut
    oui j'ai vu ça alors j'ai essayer de créer un tableau

    CFrameWnd* m_pWnd;
    m_pWnd=new CFrameWnd[10]; //Pour 10 images par exemple !!!

    Et alors m_pWnd[i]=le pointeur renvoyé par CreateNewFrame(); mais il me dit qu'il ne peut pas faire cette dernière ligne !!!

  2. #22
    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
    fait plutot un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CArray<CFrameWnd *,CFrameWnd *> m_arFrameWnd;
     m_arFrameWnd.Add(....CreateNewFrame())

  3. #23
    Membre expérimenté Avatar de BertrandA
    Inscrit en
    Août 2003
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 170
    Par défaut
    D’abord si c'est possible j'aimerais que la discussion soit moins "claquante "
    on est pas à okcoral
    Ok on se calme.
    J'ai retrouvé ce que j'avais fait sans passer par le template, mais ça ne colle pas : on n'est plus vraiment dépendant de l'architecture doc/vue.
    Donc je te présente mes excuses à ce sujet, je suis encore capable d'en sortir des pas tristes à mon âge...
    Néanmoins j'ai une solution, mais en MDI Multidoc template, le principe est le suivant :
    - La mainframe incrémente le nombre total d'images affichées
    - Chaque document mémorise l'index de l'image
    - Chaque image récupère l'indice dans son document au moment du OnDraw().
    - On définit une méthode publique FileNew() dans la mainframe, appelée par CMainFrame::OnFileNew() et CMDIView::OnFileNew().

    Dans la MainFrame :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    void CMainFrame::OnFileNew() 
    {
    	NewFile();
    }
     
    void CMainFrame::NewFile()
    {
    	CDocManager* pDocMgr = AfxGetApp()->m_pDocManager;
    	pDocMgr->OnFileNew();
     
    	POSITION pos = pDocMgr->GetFirstDocTemplatePosition();
    	CDocTemplate* pDocTemp;
    	CMDIAppDoc* pDoc;
    	while ( pos != NULL )
    	{
    		pDocTemp = pDocMgr->GetNextDocTemplate(pos);
    	}
     
    	pos = pDocTemp->GetFirstDocPosition();
    	while ( pos != NULL )
    	{
    		pDoc = (CMDIAppDoc*)pDocTemp->GetNextDoc(pos);
    	}
     
    	pDoc->SetImageIndex() = m_iNbImages++;
    }
    Dans le document :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int CMDIAppDoc::GetImageIndex()
    {
    	return m_iImageIndex;
    }
     
    int& CMDIAppDoc::SetImageIndex()
    {
    	return m_iImageIndex;
    }
    Dans la vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void CMDIAppView::OnFileNew() 
    {
    	CMainFrame* pMainFrm = (CMainFrame*)AfxGetMainWnd();
    	pMainFrm->NewFile();
    }
     
    void CMDIAppView::OnDraw(CDC* pDC)
    {
    	CMDIAppDoc* pDoc = GetDocument();
    	ASSERT_VALID(pDoc);
    	CString stIndex;
    	stIndex.Format(_T("Index : %d"), pDoc->GetImageIndex());
    	pDC->TextOut(10, 10, stIndex);
    }
    Dans le cas présent, il s'agit juste d'afficher un texte dans la vue.
    J'en conviens, ça n'a plus grand chose à voir avec ce que je claironnais au début...

Discussions similaires

  1. Problème avec des onglets de la même vue
    Par Latmy dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 27/04/2007, 15h11
  2. Problème avec des transaction
    Par Oluha dans le forum ASP
    Réponses: 16
    Dernier message: 01/03/2005, 15h40
  3. Problème avec des composants non déclarés
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/01/2005, 11h17
  4. Réponses: 5
    Dernier message: 19/08/2004, 11h11
  5. [STRUTS] Problème avec des ActionForm
    Par zarbydigital dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/03/2004, 13h49

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