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 :

Passage de param�tre d'une fenetre a une autre


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    29
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 29
    Par d�faut Passage de param�tre d'une fenetre a une autre
    Je souhaiterai creer une fenetre de type CFormView qui s'ouvrirai a partir de la view de mon appli SDI: Comment faire? et comment passer les param que je veux � la nouvelle fenetre.

    D'autre part je souhaiterai h�riter d'une listbox aafin d'utiliser l'�v�nement click droit, or j'ai beau cr�er une classe CMyListBox faire un getdlg(IDC_LIST1) ou IDC_LIST1 est ma listbox je n'obtiens pas les evenements suppl�mentaires (par contre les evt de base fonctionnent.)


    Merci

    jpdar

  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,
    mauvais depart si ton appli est SDI (single document interface ) -> implique une seule vue un document .
    sinon il faut generer un projet MDI et la tu peux avoir autant de vue que tu veux (ou presque ).
    si tu as fait une classe deriv�e de CListBox il faut l'associer a un control par classwizard (onglet member variables avec classwizard)
    ta phrase :
    [quote]
    or j'ai beau cr�er une classe CMyListBox faire un getdlg(IDC_LIST1) ou IDC_LIST1 est ma listbox je n'obtiens pas les evenements suppl�mentaires (par contre les evt de base fonctionnent.)
    GetDlgItem donne acces au controle pas aux evenements que celui ci gere.

  3. #3
    Membre �m�rite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par d�faut
    Salut

    On peut toujours changer de vue avec une application SDI en cr�eant d'abord un formulaire � l'aide de l'�diteur de ressource puis on l'associe � une classe qui d�rive bien de CFormView. Ensuite en cr�eant des ID une pour la vue principale comme ID_MAINVIEW=1 et d'autres comme ID_FORMVIEW1=2, ID_FORMVIEW2=3, etc
    Et enfin en d�finissant une fonction de s�lection de vue dans le CMainFrame comme

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
     void CMainFrame::SelectView(UINT ViewID)
    Il s'agit au fait de switcher d'une vue � une autre

    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
    38
    39
    40
    void CMainFrame::SelectView(int ViewID) 
    { 
        CView* pOldActiveView = GetActiveView(); 
        CView* pNewActiveView = static_cast<CView*>( GetDlgItem(ViewID) ); 
     
        if(pNewActiveView == NULL) 
        { 
             switch(ViewID) 
             { 
       case ID_FORMVIEW1: 
       pNewActiveView = new CFormView1(); 
       break; 
     
       case ID_FORMVIEW2: 
       pNewActiveView = new CFormView2(); 
       break; 
     
                   case ID_FORMVIEW3: 
       pNewActiveView = new CFormView3(); 
       break; 
     
       default: 
        AfxMessageBox("ID de vue invalide"); 
       return; 
               } 
     
           CCreateContext context; 
           context.m_pCurrentDoc = pOldActiveView->GetDocument(); 
           pNewActiveView->Create(NULL, NULL, 0L, CFrameWnd::rectDefault, this, ViewID, &context); 
           pNewActiveView->OnInitialUpdate();
         } 
     
         SetActiveView(pNewActiveView); 
         pOldActiveView->ShowWindow(SW_HIDE); 
         pNewActiveView->ShowWindow(SW_SHOW); 
         pOldActiveView->SetDlgCtrlID(m_CurrentViewID); 
         pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST); 
         m_CurrentViewID = ViewID; 
         RecalcLayout();    
    }

    Dans la constructeur CMainFrame on commence par la vue principale

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
     CMainFrame::CMainFrame() 
    { 
      m_CurrentViewID = ID_MAINVIEW; 
    }

    Gabrielly

Discussions similaires

  1. R�ponses: 6
    Dernier message: 28/01/2012, 17h56
  2. transmettre une variable d'une fenetre a une autre
    Par tix116 dans le forum Windows Forms
    R�ponses: 3
    Dernier message: 20/02/2009, 10h07
  3. insertion d'une fenetre dans une fenetre
    Par DeeVoiD dans le forum G�n�ral JavaScript
    R�ponses: 0
    Dernier message: 04/02/2009, 12h56
  4. Probl�me affichage d'une fenetre dans une fenetre
    Par zuzuu dans le forum Windows
    R�ponses: 10
    Dernier message: 03/10/2007, 15h26
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    R�ponses: 8
    Dernier message: 21/06/2007, 13h48

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