MFC Programmierung

Gast #663913
Lesenswert?

Guten Tag

Ich bin ein Anfänger in diesem Thema und hab ne Frage.
Ich habe ein kleines Programm geschrieben auf MFC Basis und möchte nun 
das Programm wieder schliessen indem ich auf den Button schliessen 
klicke, wie bekomme ich das hin? Wie wird das im Quellcode geschrieben?

Gruss Marco
Angehängte Dateien:
Gast #663948
Lesenswert?

Hab länger nix mehr mit MFC gemacht, aber wenn ich mich recht erinnere, 
reicht es zumindest bei einem Abbrechen-Button aus, diesem die ID 
IDCANCEL zu geben. Ich nehm an, du hast die im Framework vorgesehene 
Methode genommen, eine eigene Klasse von CDialog abzuleiten und diese an 
deine Dialogressource zu binden? Dann sollte das funktionieren.
Gast #664000
Lesenswert?

Codebeispiel?

Ich habs gerade noch mal ausprobiert, du benötigst wirklich exakt 0 
(Null) Zeilen Code, allein aufgrund der Bezeichnung IDCANCEL verwendet 
das MFC-Framework den Button als Abbrechen-Button!

Für die 0 Zeilen kann ich dir jetzt leider kein Beispiel geben ;-)

Lediglich wenn du ein abweichendes Verhalten brauchst (z.B. eine nervige 
Dervorgangistnochnichtabgeschlossenwollensiedenassistentenwirklichbeende 
n-Abfrage)  braucht du einen eigenen Handler für die BN_CLICKED-Message. 
Hierfür läßt du dir dann einfach per Doppelklick ein Grundgerüst 
erstellen.
#664074
Lesenswert?

der mechatroniker wrote:
> Codebeispiel?
>
> Ich habs gerade noch mal ausprobiert, du benötigst wirklich exakt 0
> (Null) Zeilen Code, allein aufgrund der Bezeichnung IDCANCEL verwendet
> das MFC-Framework den Button als Abbrechen-Button!
>
> Für die 0 Zeilen kann ich dir jetzt leider kein Beispiel geben ;-)
>
> Lediglich wenn du ein abweichendes Verhalten brauchst (z.B. eine nervige
> Dervorgangistnochnichtabgeschlossenwollensiedenassistentenwirklichbeende 
n-Abfrage)
> braucht du einen eigenen Handler für die BN_CLICKED-Message. Hierfür
> läßt du dir dann einfach per Doppelklick ein Grundgerüst erstellen.

und in den baut dann auch der Wizard gleich noch den richtigen call
ein (mein MFC ist etwas eingerostet, war das EndDialog()? ) um den
Dialog zu schliessen, wodurch dann auch die ganze Applikation
(da das ja eine Dialogbasierte Applikation ist) geschlossen wird.


Ich kann dir nur dringend empfehlen, in der nächsten Buchhandlung
ein Werk über MFC Programmierung zu erstehen. Es gibt noch vieles,
was man da lernen muss. Nicht umsonst haben solche Machwerke einen
Umfang von einigen hundert Seiten. Wenn du da nicht systematisch
herangehst, dann wird das nichts. Ein Buch führt dich systematisch
an die Dinge heran und ist meist auch noch ein ausgezeichnetes
Nachschlagewerk für so manches Detail.
Gast #664107
Lesenswert?

> und in den baut dann auch der Wizard gleich noch den richtigen call
> ein (mein MFC ist etwas eingerostet, war das EndDialog()? ) um den
> Dialog zu schliessen, wodurch dann auch die ganze Applikation
> (da das ja eine Dialogbasierte Applikation ist) geschlossen wird.

AFAIK ist es EndDialog, ist aber in diesem Zusammenhang auch egal. Der 
Wizard baut einen Aufruf der Basisklassenvariante des neu erstellten 
Handlers ein (der eigene Dialog ist ja von CDialog abgeleitet), und 
damit verhält sich das Ding ohne weiteres zutun des Programmierers doch 
weiterhin so, als hätte man den eigenen Handler nicht eingefügt (außer 
eben, man unterbindet mit einem if den Aufruf der Basisklassenmethode in 
bestimmten Fällen).

> Ich kann dir nur dringend empfehlen, in der nächsten Buchhandlung
> ein Werk über MFC Programmierung zu erstehen. Es gibt noch vieles,
> was man da lernen muss

Meinst du mich damit (da du zuvor meinen Beitrag zitiert hast)? Wenn ich 
vorhätte, in nächster Zeit des Öfteren mit der MFC zu arbeiten, hättest 
du sicherlich recht, ich bin da wirklich kein Profi. Da ich das aber 
nicht vorhabe, hat das sicher keine Priorität. Oder meintest du den 
Threaderöffner?
#664398
Lesenswert?

der mechatroniker wrote:

> du sicherlich recht, ich bin da wirklich kein Profi. Da ich das aber
> nicht vorhabe, hat das sicher keine Priorität. Oder meintest du den
> Threaderöffner?

Ist nicht klar hervorgegangen. Mein Fehler.
Ich meinte den Threaderöffner.
Die Dialogsteuerung mit MFC ist sozusagen 'Basiswissen von der
einfacheren Sorte'. Wenn er das nicht hinkriegt, kann er nicht
über Literatur verfügen. Die wird er aber brauchen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren