CDocument -> CChildFrame
-
Hallo,
weiß einer von euch, wie man in einer MDI-Anwendung von einem Dokument auf das zugehörige CChildFrame kommt?
Schonmal vielen Dank im Voraus

Phobos
-
Hm, wie das geht hab ich jetzt rausgefunden, das allgemeine Problem bleibt aber bestehen:
Ich habe eine CDialogBar in der mehrere Tabs sind, bei einem Klick auf einen Tab soll das dazugehörige ChildFrame aktiviert werden (eben eine MDI-Anwendung, in der mit Tabs zwischen den Fenstern hergeschaltet wird). Das Problem: Wie kann ich so einen ChildFrame nun in den Vordergrund holen, damit er aktiv ist?
Mein Code:
void CMainFrame::OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult) { // Aktuelles Item holen TCITEM item; item.mask = TCIF_PARAM; m_wndTabBar.m_ctrlTab.GetItem(m_wndTabBar.m_ctrlTab.GetCurSel(), &item); // Dokuemnt holen (wird in item.lParam gespeichert) CMyDoc* pDoc = (CMyDoc*)item.lParam; // Erste View holen (Das ganze Ding ist ein CSplitterWnd) POSITION pos = pDoc->GetFirstViewPosition(); CMyView* pView = (CMyView*)pDoc->GetNextView(pos); if(!pView) return; // Das zugehörige ChildFrame kriegen CSplitterWnd* pFrame = (CSplitterWnd*)pView->GetParent(); CChildFrame* pChildFrame = (CChildFrame*)pFrame->GetParent(); // Versuchen, aktiv zu machen: pChildFrame->SetFocus(); // geht nicht pChildFrame->SetActiveWindow(); // geht auch nicht pChildFrame->SetForegroundWindow(); // geht auch nicht pChildFrame->SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0, SWP_SHOWWINDOW); // Auch dies geht nicht *pResult = 0; }Wie kriege ich das Verdammte ChildFrame in den Vordergrund?
