Dialog Probleme

2fast4you87

Erfahrenes Mitglied
Hi,
habe 2 Fragen. Ich möchte eine Passwort abfrage machen.
Nach der Passwort abfrage,wenn sie erfolgreich war, soll das erste Dialog Fenster "zerstört" werden und das 2 soll geladen und angezeigt werden.

Ich habe 2 Dialoge in meinem Resourcen editor, habe die beiden header includet, sodass man von dialog1 an die klasse von dialog2 ran kommt. Dann habe ich die Klasse in Dialog1 aufgerufen.

klassedialog2 dlg;
dlg.DoModal();

und das gemacht, bevor sich Dialog1 auf den fenster aufbaut.
So baut sich das Dialog Fenster auf mit der PW Abfrage.
Wenn diese erfolgreich war, mache ich im Dialog2,
OnOK();
So schließt sich das Fenster von Dialog2 und Dialog1 startet mit der Anwendung.

Meine Frage : Kann man sowas Illeganter lösen?



2. Frage wie kann ich Datein von einem Dialog Fenster ins andere übergeben, habe das mit einer gemeinsamen header versucht, nur das Problem ist das der Compiler dann rummeckert!
Er sagt das var. BOOL login; schon in dem Obj deklatiert ist.

Nur wie kann ich das denn sonst machen, wenn nicht über eine Header?
 
Du könntest ja einen neuen Konstruktor für die Klasse schreiben die die Werte erhalten soll, und dann wenn du ein Objekt erzeugst die Werte übergeben.
 
Hm...
Wenn ich im dialog2 ne klasse habe :

Code:
bspklasse{
  bspklasse(int var);
  ~bspklasse();
};

Und jetzt im Dialog2 sage:
Code:
 bspklasse bsp(5);

Dann habe ich doch die Werte immer nur noch im Dialog1 und im Dialog1 muss ich die doch dann wieder neu initialisieren.
Sprich ich habe wieder nicht die Werte in Dialog2.

Oder irre ich mich da?

Gruß 2fast4..
 
Ich glaube du hast ihn falsch verstanden. Du rufst aus Dialog 1 den Dialog 2 mit folgendem Code auf

klassedialog2 dlg;
dlg.DoModal();

er meint, dass du klassedialog2 einen neuen Konstruktor schreibst, dem man Werte übergibt, so dass dein Dialog 2 in Zuckunft so aufgerufen wird

klassedialog2 dlg(DATEN);
dlg.DoModal();

Mal am Beispiel von bool Login


class klassedialog2
{
public:
klassedialog2(bool login)
{
m_Login = login;
}

private:
bool m_Login;
}

und schon ist der Wert übergeben
 
Ahhh, warum is mir das nicht eingefallen :p
Danke ! Klingt jetzt voll Logisch *g

Und zu meinem ersten Problem ?
Wenn man einen Dialog mit DoModal aufruft dann kann man nur im Fenster von den grade aufgerufen Dialog bleiben. Gibt es da ne möglichkeit Das andere Dialog Fenster zu gleich mitzubenutzen ?


Gruß 2fast ....
 
So hab da doch ncoh was gefunden :)

Code:
Dialog2 *std = new Dialog2(this);
std->Create(Dialog2::IDD);
std->ShowWindow(SW_SHOW);

Nochmals vielen Dank wegen den Konstruktor !

Gruß 2fast
 
Zurück