Forum: PC-Programmierung MFC Programmierung


von Marco (Gast)


Angehängte Dateien:

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

von der mechatroniker (Gast)


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.

von Marco (Gast)


Lesenswert?

Kannst du das kurz per Code erläutern nur 1-2 Zeilen komme bei deiner 
eklärung nicht nach, wenn ich den Code nicht sehe.

Besten Dank Marco

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Zwar kenne ich die MFC-Programmierung durchaus recht gut aus (mache das 
seit knapp 15 Jahren), aber ein Word-Dokument ist kein MFC-Sourcecode, 
und daher lade ich mir das auch nicht herunter.

von Marco (Gast)


Lesenswert?

Hab da nicht meinen Quellcode, sondern nur die Benutzeroberfläche.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Als Word-Dokument?! Screenshots kann man als PNG, GIF oder auch JPG 
erstellen, dazu bedarf es keiner verseuchungsanfälligen proprietären 
MS-Formate.

Poste Deinen Quellcode, dann kann ich sehen, was Du versuchst 
anzustellen und Dir sagen, was/wo Du machen kannst, um Dein Ziel zu 
erreichen.

von der mechatroniker (Gast)


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.

von Karl H. (kbuchegg)


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.

von der mechatroniker (Gast)


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?

von Karl H. (kbuchegg)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.