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 :

Obtenir une CView dans un CDocument


Sujet :

MFC

  1. #1
    mat.M
    Invité(e)
    Par défaut Obtenir une CView dans un CDocument
    Bonjour à tous,
    le dilemme j'ai une appli avec 2 barres de fractionnement ( CSplitter ) ;
    une vue hérite de CScrollView lavue principale de CView et une autre de CFormView.
    j'aimerais juste redessinner selon les cas soit la CScrollView soit la CView...
    Dans la classe doc on peut faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void CMyDoc::OnRepaintAllViews()
    {
       POSITION pos = GetFirstViewPosition();
       while (pos != NULL)
       {
          CView* pView = GetNextView(pos);
          pView->UpdateWindow();
       }   
    }
    et moi ce serait plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void CMyDoc::OnRepaintAllViews()
    {
       POSITION pos = GetFirstViewPosition();
       while (pos != NULL)
       {
          CView* pView = GetNextView(pos);
    if ( CView==CScrollView) pView->Invalide();//etc..
       }   
    }
    IsKindOf ne fonctionne pas j'ai essayé avec..et ne sert que pour les listes comme CObList
    Des idées ?

  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 tout a fait tester par IsKindof ,je le fais moi même dans exactement le meme contexte que tu décris ...
    verifie tes DECLARE_DYNAMIC et tes IMPLEMENT_DYNCREATE .

  3. #3
    mat.M
    Invité(e)
    Par défaut
    Merci Farscape mais j'ai essayé avec un break-point et cela ne fonctionne pas ..
    avec un cast peut-être mais je ne crois pas qu'on puisse déterminer le type d'une cast en exécution

  4. #4
    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
    et pourtant tu dois mal t'y prendre lol (sauf si j'ai mal compris ton probléme), regarde ce code:
    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
     
    void CMyFormView::OnButton1() 
    {
        // TODO: Add your control notification handler code here
       POSITION pos = this->GetDocument()->GetFirstViewPosition();
       while (pos != NULL)
       {
          CView* pView = this->GetDocument()->GetNextView(pos);
          AfxMessageBox(pView->GetRuntimeClass()->m_lpszClassName);
           if(pView->IsKindOf(RUNTIME_CLASS(CMyFormView)))
           {
               AfxMessageBox("trouvée!");
              // si j'ai envi:
              CMyFormView *pForm=static_cast<CMyFormView *>(pView);
             ASSERT(this==pForm);
           }
       }     
    }
    je joins en piece jointe le bout de programme modifié pour l'occasion.
    l'exemple ci-dessus affiche bien les classes respectives utilisées dans l'exemple.
    et le test IsKindof montre bien que j'arrive à detecter la signature de la classe qui m'interesse..
    Fichiers attachés Fichiers attachés

  5. #5
    mat.M
    Invité(e)
    Par défaut
    Merci Farscape de se donner de la peine pour me répondre , je vais regarder cela...

Discussions similaires

  1. comment obtenir une date dans une storeproc?
    Par Dnx dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/10/2005, 15h19
  2. Afficher une FormView dans une Cview ?
    Par djiwalloo dans le forum MFC
    Réponses: 1
    Dernier message: 10/09/2005, 18h36
  3. Comment obtenir une couleur clignotante dans un TStringGrid ?
    Par OutOfRange dans le forum Composants VCL
    Réponses: 2
    Dernier message: 24/07/2005, 00h46
  4. Réponses: 4
    Dernier message: 27/06/2005, 19h26
  5. [MFC] Glisser/Déposer dans une CView
    Par octopus984 dans le forum MFC
    Réponses: 2
    Dernier message: 26/04/2005, 10h15

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