begin process at 2008 09 05 14:08:52
1 237 231 membres
186 nouveaux aujourd'hui
14 313 membres club

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 : Plusieurs vues dans une sdi [ Archives / Au secours ] (loupiti)

Plusieurs vues dans une sdi le 06/12/2004 11:45:15

loupiti
Bonjour, je programme sous visual et desire afficherplusieurs vues dans une sdi,

g donc crée et genere les classes des differentes vues avec classwizard

par exemple :

IMPLEMENT_DYNCREATE(CTrajectoire, CFormView)
CTrajectoire::CTrajectoire()
: CFormView(CTrajectoire::IDD)
{
//{{AFX_DATA_INIT(CTrajectoire)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}

CTrajectoire::~CTrajectoire()
{
}

void CTrajectoire::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTrajectoire)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CTrajectoire, CFormView)
//{{AFX_MSG_MAP(CTrajectoire)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

#ifdef _DEBUG
void CTrajectoire::AssertValid() const
{
CFormView::AssertValid();
}

void CTrajectoire::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG

dans la mainframe g ajouté

void CMainFrame::SwitchToView(UINT ViewID)
{
CView* pOldActiveView = GetActiveView();
CView* pNewActiveView = (CView*) GetDlgItem(ViewID);
if (pNewActiveView == NULL)
{
switch (ViewID)
{
case IDD_TRAJECTOIRE:
pNewActiveView = (CView*) new CTrajectoire;
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();
}

et dans la 1er vue affichée:

void CChoixDlg::OnSatellite()
{
((CMainFrame*)GetParentFrame())->SwitchToView(IDD_TRAJECTOIRE);
}

ca ne marche pas, je pense que dans la derrnier fonction je ne recupere pas la bonne frame car quand je met un autre Id de boite de dialogue, la fonction switch ne rentre pas dans le default affichant "id non valide"

pouvez vous me dire ce que je dois faire

Merci


Classé sous : pnewactiveview, map, cformview, afx, ctrajectoire

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

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

Boutique

Boutique de goodies CodeS-SourceS