X
Jetzt hat sich leider ein neues Problem aufgetan, ich dachte, dass es über die message Methode kein Problem mehr ist, auch von View2 zu View3 zu springen... aber fasch gedacht ...
Ich habe im Designer einen Button auf View2 gepackt um zu View3 zu springen und im Event handler eine Methode hinzugefügt:
CSecondView.h:
public:
afx_msg void OnBnClickedButton2();
CSecondView.cpp:
void CSecondView::OnBnClickedButton2()
{
AfxGetMainWnd()->PostMessage(WM_COMMAND, ID_VIEW_3);
}
In MainFrame wird das genauso behandelt wie beim ersten mal (was ja geklappt hat):
void CMainFrame::OnViewNextview()
{
CCreateContext ccx2;
ccx2.m_pNewViewClass = RUNTIME_CLASS(CSecondView);
m_pSecondView = DYNAMIC_DOWNCAST(CSecondView, this->CreateView(&ccx2));
RecalcLayout();
m_pSecondView->ShowWindow(SW_SHOW);
//m_pSecondView->OnInitialUpdate();
SetActiveView(m_pSecondView);
m_pSecondView->SetFocus();
//m_pSecondView->ResizeParentToFit(FALSE);
}
void CMainFrame::OnView3()
{
CCreateContext ccx3;
ccx3.m_pNewViewClass = RUNTIME_CLASS(CThirdView);
m_pThirdView = DYNAMIC_DOWNCAST(CThirdView, this->CreateView(&ccx3));
RecalcLayout();
m_pThirdView->ShowWindow(SW_SHOW);
//m_pThirdView->OnInitialUpdate();
SetActiveView(m_pThirdView);
//m_pThirdView->ResizeParentToFit(FALSE);
}
Wenn ich im MainFrame Menü den Button klicke klappt es auch wunderbar, aber wenn ich es über die Buttons im View navigiere, gibt es ein problem mit der SetActiveView() Methode von MainFrame wie mir scheint. Die Fenster werden nicht gescheit in den aktiven Fokus gesetzt.
Wie müsste ich die Methode implementieren??? :
void CMainFrame::OnSetFocus(CWnd* /*pOldWnd*/)
{
m_pMainView->SetFocus();
//m_pSecondView->SetFocus();
}
Ich möchte einfach über Buttond von View zu View wechseln können