Re: ESC Taste = Programmende ?
From: Dirk Noack (d{dot}noack{at}ibs-automation{dot}de)
Date: 02/12/04
- Next message: Ralf Pichocki: "Re: GKS (Graphical Kernel System) unter VC++"
- Previous message: Holger Grund: "Re: Problem mit Copy-Klasse in CComEnumOnSTL"
- In reply to: Holger Hinzberg: "Re: ESC Taste = Programmende ?"
- Next in thread: Robert W. Kuhn: "Re: ESC Taste = Programmende ?"
- Messages sorted by: [ date ] [ thread ]
Date: Thu, 12 Feb 2004 05:19:05 +0100
Holger Hinzberg wrote:
>>Durch Escape wird CDialog::OnCancel aufgerufen.
>>
>>
>>>Und was kann ich dagegen tun ?
>>
>>OnCancel überschreiben.
>
>
> Aber womit ?
> Wenn ich Funktion leer lasse kann ich mein Programm gar nicht mehr
> beenden. Durch einen Klick auf das Schliessen Symbol soll es aber noch
> zu beenden sein, aber auch hier wird dann erstmal OnCancel ausgeführt.
>
> Was ist zu tun ??
>
>
Hallo Holger,
ich gehe bei diesem "Feature" immer folgendermaßen vor (ist ein Weg,
kein muss!)
1.) OnCancel überschreiben und CDialog::OnCancel() auskommentieren
Bsp.:
void CMainDlg::OnCancel()
{
//CDialog::OnCancel();
}
2.) den Click auf das Kreuz explizit im OnSysCommand abfangen und den
Dialog dort schließen
Bsp.:
void CMainDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
...
if( nID == SC_CLOSE )
{
CDialog::OnCancel();
}
...
}
PS: Mit der Enter-Taste gibt's den gleichen Effekt, d.h. auch das
MFC-Dialogfenster wird dadurch geschlossen (zur Behebung auch OnOK()
überschreiben und CDialog::OnOK() auskommentieren.
--
MfG
Dirk Noack
" ... Wenn man's richtig macht, geht's gleich ... " :-)
em@il: d {dot} n o a ck @ i b s - a u t o m a t i o n {dot} d e
http: w w w {dot} i b s - a u t o m a t i o n {dot} d e
- Next message: Ralf Pichocki: "Re: GKS (Graphical Kernel System) unter VC++"
- Previous message: Holger Grund: "Re: Problem mit Copy-Klasse in CComEnumOnSTL"
- In reply to: Holger Hinzberg: "Re: ESC Taste = Programmende ?"
- Next in thread: Robert W. Kuhn: "Re: ESC Taste = Programmende ?"
- Messages sorted by: [ date ] [ thread ]