www.mikrocontroller.net

Forum: PC-Programmierung MFC Programmierung


Autor: Marco (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: der mechatroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Marco (Gast)
Datum:

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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: der mechatroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: der mechatroniker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.