06. marts 2003 - 13:23Der er
2 kommentarer og 1 løsning
Hvordan åbner man et nyt view inde i et view
Hej
Jeg har lavet et MDI program hvor man skal logge på for at kunne bruge programmet! mit problem er: når man trykker på knappen log ind så skal det nuværende view forsvinde og en ny menu linie skal frem?
hvordan får jeg Viewet væk og evt. åbner et nyt view og Menu?
spørgsmålet gik på hvordan åbner jeg et nyt view inde i et view? jeg har lavet et MDI program, hvor det er meningen at man skal logge ind for at kunne bruge programmet! hvordan får jeg lukke log ind viewet og åbnet en ny menu bar og evt. view med alle programmets funktioner?
Du kan lave en funktion til at skifte view, fx således: BOOL CYourDoc::SwitchToView(CRuntimeClass* pNewViewClass) { CMDIFrameWnd* pMainWnd = (CMDIFrameWnd*)AfxGetMainWnd(); // Get the active MDI child window. CMDIChildWnd* pChild = (CMDIChildWnd*)pMainWnd->MDIGetActive(); // Get the active view attached to the active MDI child window. CView* pOldActiveView = pChild->GetActiveView(); // If we're already displaying this kind of view, no need to go further. if (pOldActiveView->IsKindOf(pNewViewClass)) return TRUE;
// Set flag so that document will not be deleted when view is destroyed. BOOL bAutoDelete = m_bAutoDelete; m_bAutoDelete = FALSE; // Delete existing view pOldActiveView->DestroyWindow(); // restore flag m_bAutoDelete = bAutoDelete;
// Create new view. CView* pNewView = (CView *)pNewViewClass->CreateObject(); if (pNewView == NULL) { TRACE1("Warning: Dynamic create of view type %Fs failed\n", pNewViewClass->m_lpszClassName); return FALSE; }
pNewView->SendMessage(WM_INITIALUPDATE, 0, 0); // WM_INITIALUPDATE is defined in afxpriv.h pChild->RecalcLayout(); pNewView->UpdateWindow(); pChild->SetActiveView(pNewView); return TRUE; }
Her er logikken til at validere og skifte view: void CYourDoc::Validate(CString csUser, CString csPw) { if(csUser == "User" && csPw == "Password") { CRuntimeClass* pNewViewClass = RUNTIME_CLASS(CYourView); SwitchToView(pNewViewClass); } }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.