Steuerelement erzeugen in dlg bzw. fenster..
-
Wenn ich ein Dialog ereuge im Ressoren Fenster, kann ich ja ganz easy Steuerelemetne per Drag-n-Drop hinzufügen, und später im code ganz einfach eine Zeiger auf das Cotrol über "GetDlgItem" bekommen!
Im prinzip müsste ich doch erst das steuerelemten mit new erzeugen oder und danach weider im destruktor löschen, wieso ist das bei nem Dialog nicht mehr notwendig es mit create/new zu erzeugen und mit delete zu löschen??
-
Das macht CDialog für dich.

-
ok, und was würde passiert wenn ich trozdme meine steuerelemente mit dreate erzeuge??
-
Dann musst du auch aufräumen.

-
Nein! Er muss nicht aufräumen solange er nicht mit new arbeitet.
Die Controls die auch dynamisch erzeugt werden, werden bei schliessen des Dialoges zerstört. Einzig wenn er ein CWnd Object mit new anlegt muss er es auch mit Delete entsorgen.
Auch wenn er ein Control per CWnd::Create erzeugt und danach z.B. einen Detach macht, wird das eigentliche Fenster zerstört, wenn der Dialog beendet wird.
Man muss sich einfach klar sein, dass das Control auf dem Dialog was anderes ist als das CWnd Objekt mit dem man arbeitet.
-
d.h. mit der funktion GetDlgItem,gibt mit CDialog den den zeiger auf das CWnd Steuerelemten zurück das Cdilaog für sich angelegt hat?
-
Nein! In diesem Fall erzeugt die MFC ein temporäres CWnd Objekt das dem Fenster im Dialog zugeordnet ist. Dieses temporäre CWnd Objekt wird irgendwann wenn die Applikation Idle geht wieder entsorgt.