Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: MFC (Visual C++) ::  OnOK und OnCancel überladen WIE?     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
sentinel.dd
Mitglied

Benutzerprofil
Anmeldungsdatum: 07.05.2008
Beiträge: 21
Beitrag sentinel.dd Mitglied 00:37:19 12.03.2010   Titel:   OnOK und OnCancel überladen WIE?            Zitieren

Hallo Leute

ich habe einen Dialogfeld basierte Anwendung.
Nun möchte ich, dass bei Enter oder ESC das Programm nicht beendet wird.
Dazu muss ich OnOK und OnCancel überladen.
Nur habe ich keine Ahnung wie ich das machen soll.
Wenn ich eine Funktion CDialog::OnCancel anlege bekomme ich eine Linker Fehler OnCancel(void)" (?OnCancel@CDialog@@MAEXXZ) ist bereits in SAIA_MYSQL_SERVERDlg.obj definiert.

Vielen Dank
Holger
_matze
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9606
Beitrag _matze Mitglied 06:57:42 12.03.2010   Titel:              Zitieren

Du hast das aber nicht wirklich so notiert, oder?

C/C++ Code:
void CDialog::OnCancel() {
C/C++ Code:
void CDialog::OnCancel() {
C/C++ Code:
void CDialog::OnCancel() {


Du musst natürlich OnCancel für deine Klasse überschreiben (die von CDialog abgeleitet ist), nicht für CDialog.

_________________
Wie viele atheistische Babys hat man schon aus Versehen - oder gar mit Absicht! - getauft?
sentinel.dd
Mitglied

Benutzerprofil
Anmeldungsdatum: 07.05.2008
Beiträge: 21
Beitrag sentinel.dd Mitglied 16:22:29 14.03.2010   Titel:              Zitieren

So habe ich das gemacht.
C/C++ Code:
void CSAIA_MYSQL_SERVERDlg::OnCancel()
{
    AfxMessageBox("Ende");
}
C/C++ Code:
void CSAIA_MYSQL_SERVERDlg::OnCancel()
{
AfxMessageBox("Ende");
}
C/C++ Code:
void CSAIA_MYSQL_SERVERDlg::OnCancel()
{
    AfxMessageBox("Ende");
}


dann bekomme ich Fehler:
'OnCancel': Memberfunktion wurde in 'CSAIA_MYSQL_SERVERDlg' nicht deklariert

was fehlt da noch?

danke Holger


Zuletzt bearbeitet von sentinel.dd am 16:23:37 14.03.2010, insgesamt 1-mal bearbeitet
foodax
Mitglied

Benutzerprofil
Anmeldungsdatum: 30.10.2006
Beiträge: 188
Beitrag foodax Mitglied 16:36:11 14.03.2010   Titel:              Zitieren

sentinel.dd schrieb:
So habe ich das gemacht.
was fehlt da noch?

danke Holger
Die Deklaration und der Messagehandler.

Zieh Dir auf den Dialog zwei Buttons, nenne die Resourcen-IDs IDOK und IDCANCEL und mach nen Doppelklick drauf.

Gruß
foo
sentinel.dd
Mitglied

Benutzerprofil
Anmeldungsdatum: 07.05.2008
Beiträge: 21
Beitrag sentinel.dd Mitglied 17:45:58 14.03.2010   Titel:              Zitieren

danke geht nun.
kann man noch unterscheinden, ob ESC oder X Button gedrückt wurde?
Danke Holger
Barny G.
Unregistrierter




Beitrag Barny G. Unregistrierter 17:59:19 14.03.2010   Titel:              Zitieren

Indem du die Tastennachrichten abfragst.
CTecS
Mitglied

Benutzerprofil
Anmeldungsdatum: 14.09.2008
Beiträge: 821
Beitrag CTecS Mitglied 21:00:22 14.03.2010   Titel:              Zitieren

Barny G. schrieb:
Indem du die Tastennachrichten abfragst.


Quatsch warum will jeder alles mit der hammermethode machen ESC kommt bei OnCancel raus und das kreuz zum schliessen wird über OnSysCommand als SC_CLOSE gemeldet

WM_SYSCOMMAND

sollte ja wohl reichen zum unterscheiden
C/C++ Forum :: MFC (Visual C++) ::  OnOK und OnCancel überladen WIE?   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.