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 :

cr�ation frame


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    13
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 13
    Par d�faut cr�ation frame
    Bonjour,
    Je travail sur un apply MDI, pour l'instant en cliquant sur mes menus j'ouvre des fen�tres, jusque l� tout va bien.
    Mais le probl�me est que lorsque je reclique sur ces menus, une nouvelle fen�tre s'ouvre et je souhaiterai uniquement rafraichir l'ancienne.

    En fait je ne sais pas o� je dois faire la v�rification de la cr�ation ou non de la fen�tre. Je travail avec des fen�tre de type FORM. J'ai vu une fonction IsVisible mais elle s'applique aux dialogues, non?

    Voil� merci de votre aide...

    Bilouz

  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,
    voir la faq:
    http://c.developpez.com/faq/vc/?page=CWinApp#GetAllView
    tu parcours les fenetres existantes tu compares la signature .
    si elle existe tu fais un :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    static_cast<CMDIChildWnd *>(pMyViewFind->GetParentFrame())->ActivateFrame(SW_RESTORE);
    sinon tu fais un OpenDocumentFile.


  3. #3
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    13
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 13
    Par d�faut
    Merci pour ton aide mais je ne comprends pas tr�s bien comment je vais comparer la valeur de ma FORM dans la boucle recherchant tous mes templates ?

    Et donc comment l'appeler ensuite ?

    Merci !!!

    Bilouz

  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
    salut,
    on peut ecrire le code suivant d'apres la faq:
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    CWnd *FindInstanceView(CRuntimeClass *pViewClass)
    {
        CWinApp* pApp = AfxGetApp();        
        // parcourir tous les templates
        CDocTemplate* pTemplate;
        POSITION pos = pApp->GetFirstDocTemplatePosition();
        while (pos != NULL)
        {
            pTemplate = pApp->GetNextDocTemplate(pos);
            ASSERT(pTemplate);
     
            // tous les documents du template.
            POSITION pos2 = pTemplate->GetFirstDocPosition();
            while (pos2)
            {
                CDocument* pDoc = pTemplate->GetNextDoc(pos2);
                ASSERT(pDoc);
     
                // toutes les vues du document
                POSITION pos3 = pDoc->GetFirstViewPosition();
                while (pos3 != NULL)
                {
                    CView* pView = pDoc->GetNextView(pos3);
                    ASSERT(pView);
                    if (::IsWindow(pView->GetSafeHwnd()))
                    {
                        if(pView->IsKindOf(pViewClass))
                        {
                            return pView;
                        }                    
                    }
                }
            }
        }
        return NULL;
    }
    utilisation si la classe recherch�e se nomme CTestMdiView:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CTestMdiView *pView;
     
        if((pView=static_cast<CTestMdiView *>(FindClassView(RUNTIME_CLASS(CTestMdiView)))))
        {
            TRACE("\nInstance de la classe trouvée");
    static_cast<CMDIChildWnd *>(pView->GetParentFrame())->ActivateFrame(SW_RESTORE);
        }
    c'est plus clair ?

  5. #5
    Membre averti
    Inscrit en
    Septembre 2005
    Messages
    13
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 13
    Par d�faut
    Merci c'est super !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Cr�ation frame dynamique
    Par rvzip64 dans le forum Delphi
    R�ponses: 22
    Dernier message: 13/07/2007, 16h00
  2. Cr�ation et affichage de 1000 frames = plantage
    Par SkYsO dans le forum Delphi
    R�ponses: 20
    Dernier message: 05/06/2007, 16h42
  3. R�ponses: 6
    Dernier message: 05/02/2007, 14h56
  4. Cr�ation de frame depuis des Dll de classes
    Par ogasse dans le forum Delphi
    R�ponses: 2
    Dernier message: 31/08/2006, 12h51
  5. TAdvTabsheet, cr�ation dynamique de frame
    Par gmc dans le forum Delphi
    R�ponses: 2
    Dernier message: 24/08/2006, 09h37

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