Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » MFC Dialoge

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.09.2004, 21:40 Uhr
~Talkabout
Gast


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?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.09.2004, 21:56 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


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 { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.09.2004, 21:58 Uhr
~Talkabout
Gast


Bei dem Teil "im anderen Dialog erstellt werden" habe ich Probleme. Wie erstelle ich den im anderen Dialog, mit Create()?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.09.2004, 22:02 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Ja Genau, also z.b so:


C++:
// membervar:
CInternerDlg *m_dlgInterner;

// 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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
22.09.2004, 22:07 Uhr
~Talkabout
Gast


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?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.09.2004, 22:14 Uhr
~Talkabout
Gast


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?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
22.09.2004, 22:28 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


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
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
22.09.2004, 22:33 Uhr
~Talkabout
Gast


Nein, zum Glueck nicht. Habe den Eventhandler OnMove noch drinnen gehabt, und der untergeordnete Dialog wurde deshalb verschoben. Klappt alles wie gewollt, danke Euch!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: