MFC Button Click Event ausführen
-
Hallo,
so, leider stehe ich schon wieder an....
und zwar möchte ich, dass bei Klick auf einem Button in einem Dialogfenster etwas ausgeführt wird (im ersten Schritt nur mal die Anzeige einer MessageBox). nur leider klappt das bei mir nicht, obwohl ich eigentlich dieser Anleitung folge: http://social.msdn.microsoft.com/Forums/vstudio/en-US/653c115b-dc19-4228-9432-f8b03a79ea45/mfc-button-clickalso in Modal.h ist Folgendes eingefügt:
public: afx_msg void OnBnClickedButton1();
und in Modal.cpp ist Folgendes eingefügt:
BEGIN_MESSAGE_MAP(CModal, CDialogEx) ON_BN_CLICKED(IDC_BUTTON1, &CModal::OnBnClickedButton1) END_MESSAGE_MAP() // CModal-Meldungshandler void CModal::OnBnClickedButton1() { MessageBox( "You clicked on me"); // TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein. }
nur leider passiert da genau gar nicht, wenn ich auf Button1 drücke...
Kennt vielleicht jemand dieses Problem?
Vielen Dank im Voraus
-
Deine Message-Map gehört zur Klasse CTest.
Die Methode aber gehört zur Klasse CModal.
Eins davon muss wohl falsch sein.
-
war ein Abschreibfehler, habs schon korrigiert, ist alles CModal.
-
Hast Du auch das DECLARE_MESSAGE_MAP() Makro in der Header-Datei verwendet?
-
Ja, ist in der Header-Datei drinnen:
protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung DECLARE_MESSAGE_MAP() public: afx_msg void OnBnClickedButton1();
Könnte es sein, da als 'Hauptklasse' COleControl verwendet wird,
ich PreModalDialog() zuvor einfügen muss, bevor ich das Dialogfenster öffne?
http://msdn.microsoft.com/de-at/library/56t0eahz%28v=vs.100%29.aspx
Habe es zwar zuvor eingefügt, und PostModalDialog() danach, aber bei mir tut sich trotzdem nichts, bin mir aber auch nicht sicher, ob ich das richtig verwende, da ich sonst im Internet nicht wirklich was darüber finden konnte...
-
Was meinst Du bitte mit Hauptklasse?
Was ist das?
-
Ich hab damit gemeint, was als Klasse für <Projektname>.cpp verwendet wird, ich wusste leider nicht, wie man das richtig bezeichnet...
Wo auch die 'OnDraw' Zeichnungsfunktion ausgeführt, und so die grafische Oberfläche gezeichnet wird. Mein Dialogfenster, sollte ja auch aus dieser Oberfläche heraus geöffnet werden.