Hallo zusammen! Habe eine Frage bezüglich der Ineinanderschachtelung von Dialogfenstern. Ist es möglich in ein bestehendes Dialogfenster einen zweiten Dialog einzuzeichnen, so als wäre er ein Steuerelement? Und auch so dass man alle Controls dieses zweiten Dialogs ganz normal verwenden kann?
für was willst du das tun? aber theoretisch ist es schon möglich.
Der zweite Dialog muss halt Nicht-modal im anderen Dialog erstellt werden, dann Dialogtyp muss "untergeordnet" sein, rand muss auch auf "Keiner" stehen. dann kannst du mit SetWindowPos den im anderen Dialog hin und her verschieben so wie du es willst. -- class God : public ChuckNorris { };
// in OnInitDialog z.b m_dlgInterner = new CInternerDlg(this); m_dlgInterner->Create(IDD_INTERNER_DIALOG,this); // heir dann evtl mit m_dlgInterner->SetWindowPos(...) den Dialog positionieren m_dlgInterner->ShowWindow(SW_SHOW);
Wichtig: am Ende dann delete m_dlgInterner nicht vergessen! evtl im Destruktor:
C++:
if(m_dlgInterner) delete m_dlgInterner;
und am besten im Konstruktor:
C++:
m_dlgInterner = NULL;
-- class God : public ChuckNorris { };Dieser Post wurde am 22.09.2004 um 22:03 Uhr von FloSoft editiert.
Genauso habe ich es auch gemacht, nur dass er mir bei der Zeile "m_dlgInterner->ShowWindow(SW_SHOW)" mit einer "Debug Asseration Failed" Meldung abstuerzt. Irgendwelche Ideen?
Hat sich erledigt, mein Fehler, jetzt klappt es. Nur ein Problem habe ich noch. Wenn ich das programm unter win98 aufrufe ist alles ok, aber sobald ich das gesamte Fenster verschiebe verschwindet mir der Dialog im Dialog . Jemand hierzu eine Idee?
wenn du den dialog verschiebt muss er neu zeichen... das musst du abfagen und den andern dialog dann auch entsprechend verschieben -- ...fleißig wie zwei Weißbrote
Nein, zum Glueck nicht. Habe den Eventhandler OnMove noch drinnen gehabt, und der untergeordnete Dialog wurde deshalb verschoben. Klappt alles wie gewollt, danke Euch!