ChildFenster verschwindet beim Minimieren

SabineenibaS

Grünschnabel
Hallo,
habe folgende Probleme: Ich erstelle ein Kindfenster (Rahmen und Ansicht) in MainFrame (SDI).
1.) der Rahmen wird beim Klick in die Titelleiste nicht "blau" wie aktiviert, lässt sich aber verschieben?
2.) beim klick auf Minimieren verschwindet das Fenster auf nimmer wiedersehen, Maximieren geht aber?

Eigentlich müsste doch das Parent-Fenster (MainFrame) die Kontrolle haben? Muss ich vielleicht das Minimieren selber steuern?

Folgender Code erzeugt das Kindfenster:

void CMainFrame::BuildNewView()
{
CMyFrame * pChildFrame;
pChildFrame = new CMyFrame;
pChildFrame->LoadFrame(IDR_CHILD,
WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE | WS_CHILD,
this,
NULL);

CRuntimeClass *pMyView = RUNTIME_CLASS(CMyView);
CCreateContext CActContext;
CActContext.m_pNewViewClass = pMyView;
CActContext.m_pCurrentDoc = NULL;
CActContext.m_pCurrentFrame = pChildFrame;
pChildFrame->m_pwndView = (CMyView*)(pChildFrame->CreateView(&context));
pChildFrame->InitialUpdateFrame(NULL,TRUE);
}
 
Zuletzt bearbeitet:
Hallo,

also bei einer SDI-Applikation gibt es keine Child-Frames und der View nimmt den gesamten Client-Bereich (ohne Titel und Rahmen) ein. Was du hier versuchst, ist das Verhalten einer MDI-Applikation innerhalb eines SDI-Frameworks nachzubauen. In dem Fall arbeitest du eigentlich gegen die MFC, was zu seltsamen Effekten führen kann (ohne dass ich jetzt die genaue Ursache für das Minimieren-Problem nennen könnte).

Wenn du eine SDI-Applikation haben willst, dann erzeuge nur den View ohne ein FrameWindow.
Falls du eines oder mehrere separate Fenster innerhalb des Hauptfensters haben willst, erzeuge lieber eine richtige MDI-Applikation.

Grüße
MCoder
 
Hallo zusammen,
es ist etwas kompliziert zu erklären, was ich tun will, aber ich versuchs mal zu umschreiben: Also in der obersten Ansicht steht z.B. ein Haus. Dann kann man auf Teilbereich klicken, z.B. auf das Erdgeschoß. Ein KindFenster geht auf mit einem Grundriss vom Erdgeschoß. In diesem Kindfenster kann man wieder auf einen Teilbereich klicken, z.B. auf die Küche. Wieder geht ein Kindfenster auf mit dem Grundriss der Küche usw.
Da in der Hausansicht mehrere Teilbereich gleichzeitig ausgewählt werden können (also jeweils ein eigenes Fenster für z.B. Keller, Erdgeschoß, Dachboden) müssen die weiteren Detailfenster immer Kindfenster ihrer Eltern sein, weil sonst keiner mehr feststellen kann, ob die Küche im Keller oder im Dachboden ist.
Ich habe mit MDI noch nichts gemacht, aber ich habe das so verstanden, das die DocTemplates unabhängig voneinander sind und auch dort müsste ich ja zum reinzoomen ins Haus Kindfenster erstellen.
Das Programm wie es bisher steht funktioniert übrigens genau so, wie ich will, bis eben auf das Minimieren (hab den Button eben abgeklemmt, was aber ja nicht gerade die schönste Lösung ist) und das die Titelleiste beim Fokus nicht "blau" wird.

Wäre toll wenn jemand einen Tipp oder einen Link hätte.
 
Zurück