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

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  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