Childwnd aus SDI -> Zugriffsproblem, Assert fail
-
Hallo an alle,
ich versuche mich gerade ein Kindfenster von einer SDI anwendung zu öffnen. Den dafür erforderlichen Funktionen habe ich auch verstanden. Es öffnet sich ein Kindfenster wen ich es haben möchte.
Was mich allerdings stutzig gemacht hat bei der Deklaration der ChildWnd Klasse die von CFrameWnd abgeleitet wird, erstellt er Klassenass. den Konstruktor und Destruktor protected.
Als Kommentar vom steht dahinter noch :// Dynamische Erstellung verwendet geschützten Konstruktor
damit ich jetzt auf den Konstruktor zugreifen kann um das Fenster zu erstellen habe ich den Zugriff von protected auf public geändert.
Ist diese vorgehensweise so richtig, oder ist das wieder etwas spezielles der MFC.
Wenn ich das Fenster jetzt erstelle wird es auch korrekt dargestellt, aber sobald ich es schieße gibt es eine Unbehandlete Ausnahme die in einem Assert endet in dbgheap.c Line: 1132 Expression: _CrtIsWalidHeapPointer(pUserData)
Hat vielleicht irgendjemand eine Tip, Danke
Mutche
Hiernoch der Code für die Erstellung des ChildWnd
RECT rectDefault = {0,0,400,300}; m_LockedWnd.Create(NULL,"ChildWnd",WS_OVERLAPPEDWINDOW, rectDefault,this,NULL,0,NULL); m_LockedWnd.ShowWindow(SW_SHOWNORMAL);
-
Für alle die es evtl. interessiert das muss mit new erzeugt werden, sonst kommt es zu dem Assert fehler. Man solle halt http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_cframewnd.asp
richtig lesen.