MFC - DialogFeldbasiertes Projekt

Hi,

vielen Dank. Die Fehlermeldungen sind wie weggezaubert. Jetzt kommt das hier raus:

E:\C++\MySpiel\MySpielDlg.cpp(124) : error C2664: 'Bild' : Konvertierung des Parameters 4 von 'class CMyTestDlg' in 'class CMyTestDlg *' nicht moeglich
Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden

Kannst du damit was anfangen?

Gruß
 
Zeige doch bitte auch mal die zu der Fehlermeldung gehörende Codestelle.
Offensichtlich wird da irgendwo ein Zeiger erwartet, wo du eben keinen übergibst bzw. verwendest.

Gruß
MCoder
 
Hi,

das ist genau an der Stelle, wo ich den Zeiger *this übergebn möchte:

Sprite figOperator;
figOperator.MeineMethode (op1, op2, op3, *this);

Entschuldige. Kannst mir eventuell bei einer anderen Sache auch behilflich sein:

Ich habe ja ein Dialogbasiertes Projekt. Mein Hauptdialog ist
schon fertig. Beim Sart des Programms startet auch dieses Fenster.
Ich möchte aber ein anderes Diaologform davor schalten, damit beim
Starten des Programms erst dieses gestartet wird. Über dieses Fenster
gebe ich dem User ein paar Auswahlmöglichkeiten. Wenn der User seine Wahl
getroffen und auf OK geklickt hat, soll dieses Dialogfeld geschloßen und erst dann soll
das Hauptdialog gestartet werden. Dabei müssen die Werte der
ausgewählten Radiobuttons an das Zweiten Fenster weitergereicht
werden. Ist das möglich? Wie soll ich da vorgehen.


Gruß
 
Hallo,

zu deinem Fehler: schreibe nur "this".

Den StartDialog kannst in der Methode "InitDialog" des Hauptdialoges aufrufen.
Die Werte kannst du in entsprechenden Membervariablen des Hauptdialoges speichern.
Zugriff auf den Hauptdialog bekommst du mit:
C++:
((CMyTestDlg *)AfxGetMainWnd())-> ... // Name der Methode oder Variable des Hauptdialoges
Dabei nicht das Include des Hauptdialogheaders vergessen :)

Gruß
MCoder
 
Hi,

danke. Die Fehlermeldungen sind beseitigt. Ich bekomme aber, warum auch immer,
bei Start des Progrmms einen Ausnahmefehler-Fenste:

unknown software exception(0x00000fd) ....

>>Den StartDialog kannst in der Methode "InitDialog" des Hauptdialoges aufrufen.

das habe ich so gemacht:
test->Create(IDD_START_DIALOG, this);

so wird aber das Hauptfenster auch mitgeöffnet. Wie kann das verhindern und dann
wieder anleiten, damit das Startfenster geschloßen und Hauptfenster geöffnet wird?

Gruß
 
Hallo,

der Ausnahmefehler wird entweder in der Methode "InitInstance()" der Applikationsklasse oder "InitDialog()" des
Hauptdialoges verursacht. Durch schrittweises Debuggen müsstest du der Sache auf die Spur kommen.

Den Startdialog solltest du modal aufrufen. Dann wird die Programmausführung an der Stelle angehalten und erst wieder
fortgesetzt, wenn der Startdialog geschlossen wurde.
C++:
CMyStartDlg dlg;
dlg.DoModal();
Gruß
MCoder
 
Zurück