Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Changement de vue [ Archives / Graphique ] (james)

vendredi 21 mars 2003 à 09:30:42 | Changement de vue

james


Salut
Je desire changer de vue dans une appli du type document /vue.

j'ai deux Classes derivant de la classe CFormView
et en appuyant sur un bouton d'une des deux vues je veux changer de vues.
mon pb est que lorsque je change de vue cela plante :

voila mon code
void Selectview(int ViewID)
{
CView* pNewActiveView;
CView* pOldActiveView;

pOldActiveView = GetActiveView();

switch(ViewID)
{
case 1:
pNewActiveView = (CTest_2View*)new CTest_2View;
break;
case 2:
pNewActiveView = (CSaisieFSEView*)new CSaisieFSEView;
break;
}
SetActiveView(pNewActiveView);
pOldActiveView->ShowWindow(SW_HIDE);
pNewActiveView->ShowWindow(SW_SHOW);
RecalcLayout();
}


Merci

dimanche 23 mars 2003 à 16:41:30 | Re : Changement de vue

bonmau


bonmau


-------------------------------
Réponse au message :
-------------------------------

>
> Salut
> Je desire changer de vue dans une appli du type document /vue.
>
> j'ai deux Classes derivant de la classe CFormView
> et en appuyant sur un bouton d'une des deux vues je veux changer de vues.
> mon pb est que lorsque je change de vue cela plante :
>
> voila mon code
> void Selectview(int ViewID)
> {
> CView* pNewActiveView;
> CView* pOldActiveView;
>
> pOldActiveView = GetActiveView();
>
> switch(ViewID)
> {
> case 1:
> pNewActiveView = (CTest_2View*)new CTest_2View;
> break;
> case 2:
> pNewActiveView = (CSaisieFSEView*)new CSaisieFSEView;
> break;
> }
> SetActiveView(pNewActiveView);
> pOldActiveView->ShowWindow(SW_HIDE);
> pNewActiveView->ShowWindow(SW_SHOW);
> RecalcLayout();
> }
>
>
> Merci
>
Bonjour,

J'utilise une application SDI en visual C++ et les MFC.
J'ai appelé CVue1 et CVue2 les classes associées à chaque vue dont les ID sont respectivement IDD_FORMVIEW et IDD_FORMVIEW1.
Dans MainFrm.h
déclarer
public:

UINT m_currentViewID;
void SwitchToView(UINT ViewID);
Dans MainFrm.cpp

void CMainFrame::SwitchToView(UINT ViewID)
{
CView* pOldActiveView = GetActiveView();
CView* pNewActiveView = (CView*) GetDlgItem(ViewID);
if (pNewActiveView == NULL) {
switch (ViewID) {
case IDD_FORMVIEW1:
pNewActiveView = (CView*) new CVue2;
break;
default:
AfxMessageBox("ID de vue non valide");
return;
}
CCreateContext context;
context.m_pCurrentDoc = pOldActiveView->GetDocument();
pNewActiveView->Create(NULL, NULL,0L,
CFrameWnd::rectDefault, this, ViewID, &context);
pNewActiveView->OnInitialUpdate();
}
SetActiveView(pNewActiveView);
pNewActiveView->ShowWindow(SW_SHOW);
pOldActiveView->ShowWindow(SW_HIDE);
pOldActiveView->SetDlgCtrlID(m_currentViewID);

pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
m_currentViewID=ViewID;
RecalcLayout();
}

Ensuite,dans CVue1,Onbutton1 étant la fonction qui gère le click permettant de changer de vue
CVue1::OnButton1()
{
((CMainFrame*)GetParentFrame())->SwitchToView(IDD_FORMVIEW1);
}
De même dans CVue2
CVue2::OnButton2()
{
((CMainFrame*)GetParentFrame())->SwitchToView(IDD_FORMVIEW);
}
Bien entendu, il s'agit de mettre dans les fichiers d'en tête les #include qui s'imposent.
@+
bonmau

dimanche 23 mars 2003 à 19:59:59 | Re : Changement de vue

bonmau


bonmau


-------------------------------
Réponse au message :
-------------------------------

>
> bonmau
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> > Salut
> > Je desire changer de vue dans une appli du type document /vue.
> >
> > j'ai deux Classes derivant de la classe CFormView
> > et en appuyant sur un bouton d'une des deux vues je veux changer de vues.
> > mon pb est que lorsque je change de vue cela plante :
> >
> > voila mon code
> > void Selectview(int ViewID)
> > {
> > CView* pNewActiveView;
> > CView* pOldActiveView;
> >
> > pOldActiveView = GetActiveView();
> >
> > switch(ViewID)
> > {
> > case 1:
> > pNewActiveView = (CTest_2View*)new CTest_2View;
> > break;
> > case 2:
> > pNewActiveView = (CSaisieFSEView*)new CSaisieFSEView;
> > break;
> > }
> > SetActiveView(pNewActiveView);
> > pOldActiveView->ShowWindow(SW_HIDE);
> > pNewActiveView->ShowWindow(SW_SHOW);
> > RecalcLayout();
> > }
> >
> >
> > Merci
> >
> Bonjour,
>
> J'utilise une application SDI en visual C++ et les MFC.
> J'ai appelé CVue1 et CVue2 les classes associées à chaque vue dont les ID sont respectivement IDD_FORMVIEW et IDD_FORMVIEW1.
> Dans MainFrm.h
> déclarer
> public:
>
> UINT m_currentViewID;
> void SwitchToView(UINT ViewID);
> Dans MainFrm.cpp
>
> void CMainFrame::SwitchToView(UINT ViewID)
> {
> CView* pOldActiveView = GetActiveView();
> CView* pNewActiveView = (CView*) GetDlgItem(ViewID);
> if (pNewActiveView == NULL) {
> switch (ViewID) {
> case IDD_FORMVIEW1:
> pNewActiveView = (CView*) new CVue2;
> break;
> default:
> AfxMessageBox("ID de vue non valide");
> return;
> }
> CCreateContext context;
> context.m_pCurrentDoc = pOldActiveView->GetDocument();
> pNewActiveView->Create(NULL, NULL,0L,
> CFrameWnd::rectDefault, this, ViewID, &context);
> pNewActiveView->OnInitialUpdate();
> }
> SetActiveView(pNewActiveView);
> pNewActiveView->ShowWindow(SW_SHOW);
> pOldActiveView->ShowWindow(SW_HIDE);
> pOldActiveView->SetDlgCtrlID(m_currentViewID);
>
> pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
> m_currentViewID=ViewID;
> RecalcLayout();
> }
>
> Ensuite,dans CVue1,Onbutton1 étant la fonction qui gère le click permettant de changer de vue
> CVue1::OnButton1()
> {
> ((CMainFrame*)GetParentFrame())->SwitchToView(IDD_FORMVIEW1);
> }
> De même dans CVue2
> CVue2::OnButton2()
> {
> ((CMainFrame*)GetParentFrame())->SwitchToView(IDD_FORMVIEW);
> }
> Bien entendu, il s'agit de mettre dans les fichiers d'en tête les #include qui s'imposent.
> @+
> bonmau
Un petit complément:
le programme suppose que la vue1 est affichée en premier.
En conséquence: dans la fonction InitInstance de la classe d'application
pDocTemplate=new CSingleDocTemplate(..........
RUNTIME_CLASS(CVue1));
et dans le constructeur de CMainFrame:

m_currentViewID=IDD_FORMVIEW;
@+



Cette discussion est classé dans : changer, changement, vue, pnewactiveview, poldactiveview


Répondre à ce message

Sujets en rapport avec ce message

Changement de vue [ par julok2 ] Bonjour à tous,j'écris actuellement un programme MFC avec VC++6 qui contient deux formulaires principaux.En cliquant sur un bouton, on peut passer d'u Changement de toutes les couleurs dans une appli en MFC [ par obby ] Salut,  Je voudrai changer toutes les couleurs dans mon application. J'ai déjà réussi à changer la couleur de fond d'une boite de dialogue mais j'aim changement de curseur [ par magic_Nono ] Hellolors du déplacement d'élements à la souris, (Drag-n-drop)il est plutot intéressant de changer le pointeur.(le but est d'avoir un produit assez in changer couleur texte [ par kam42 ] salut à tous ;j'ai un gros probleme; j'ai programmé l'ouverture d'un fichier texte en MFC que j'affiche dans la vue. Mon souci est que je dois changer aide pour changer plice taille et couleur des caractères dans un fichier text [ par achatagogo ] salutj'ai besoin de votre aide pour changer de plice et la taille des caracrtères sur DEV c++.sous WIndowsje crée un fichier avec createFile() ensuite Changer la police d'un menu [ par Neo_Fr ] Bonsoir, Est-ce quelqu'un sait comment changer la police d'un menu? Je charge ma font avec CreateFontIndirect mais je ne voit pas comment l'appliquer changer couleur d'un des pixels d'une hbitmap [ par ndubien ] Bonjour,Est-t'il possible de changer la couleur d'un des pixels d'une variable HBITMAP?Si oui, comment?Merci d'avance et à bientôt... UDdate d'une vue a partir d'une boite de dialogue [ par Uno22 ] Bonjour,J'ai un petit probleme de mise à jour avec les MFCEn fait, au départ j'ai une vue dans la quelle je récupere pas mal de paramètre comme adress changement de type [ par jimonnet ] Bonjour,je precise que je travaille sous c++,Y-a-t-il un moyen de transformer en inten char ??Pour mon programme j'ai besoin d'afficher a l'ecran (fen Interaction camera <-> collisions [ par DarkBoss ] Hellowww,alors voila je me demandais tout bêtement, on parle beaucoup de comment detecter les collisions, mais pas beaucoup de comment gérer les colli


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.