GetParent() Problem
-
Huhu zusammen,
ich hab nen Problem.
Ich habe einen modalen Dialog in dem ich im Konstruktur noch einen nicht modalen Dialog erzeugen lasse (das ist praktisch wie eine Statusanzeige bei mir)
Wenn ich jetzt im Konstruktor des modalen Dialogs per "Create" den neuen Dialog erzeuge mache ich es so:
CStatus = new Status; CStatus->Create(IDD_Dialog2,this); CStatus->ShowWindow(SW_NORMAL);so, in der klasse 'Status' von dem nicht-modalen Dialog-Fenster selber habe ich bei einer Methode dann folgendes gemacht:
void Status::MacheIrgendwas() { CWnd* Var1; Var1 = this->GetParent(); ... }So, weil ich bei Create ja den this Zeiger übergeben habe, sollte er demnach zu folge auch einen Wert in Var1 haben, aber dem ist leider nicht so.
Dann habe ich probiert, die ganze sache mal bei OnPaint und OnCtlColor zu packen mit dem Create weil ich mir halt dachte, dass der im Konstruktor halt noch net alles so erstellt hat. Aber genau das gleiche.
Keinen Wert in Var1!
Wat mach ich denn falsch?
-
void Status::MacheIrgendwas() { CWnd var1; var1 = this->GetParent(); ... }du hast doch sonst nur einen zeiger der auf nix zeigt, wenn ich mich jetz nich irre...
-
Könnte es sein, dass Dein Create einfach fehlschlägt?
Oder wie gibst Du denn das Objekt weiter?
-
Kann es sein, dass Dein Create fehlschlägt?
Wie gibst Du denn das Objekt CStatus weiter?
-
ehm ne, weil dann würd er mir ja abstürzen wenn ich den showWindow mache nur das funzt ja alles wunderbar
kann es vielleicht sein dass der im konstruktor von klasse a (wo ich dann auch das create mache) die instanz noch nicht korrekt erzeugt wurde?
sprich: sowas in der Art wie beim OnInitDialog wenn ich da auf nem Bitmap zeichnen will geht das ja auch noch net weil des noch net erzeugt ist
-
was mir auffaellt
muesste es nicht eher
CWnd *var1;
statt
CWnd var1;
heissen ?
GetParent gibt doch glaub ich nen zeiger auf das parent