Beenden einer Dialogfeldanwendung

Baron Sengir

Mitglied
Hi, ich sehe grad den Wald vor Bäumen nicht :confused:

Ich habe eine Dialogfeldanwendung und will nun verhindern, dass der User versehentlich über das Drücken von "Esc" oder "Enter" das Programm beendet. Er soll es nur durch klicken auf das Schliessen-Kreuz beenden können.

Ist ja ganz simpel - so dachte ich - ich überschreibe einfach OnOk(); und OnCancel(); mit einer leeren Funktion.

Logische Konsequenz ist natürlich, dass ich nun das Programm gar nicht mehr "normal" beenden kann, also auch nicht über das Schliessen-X.

Jetzt würde ich es natürliche gerne richtig machen, nur habe ich grad gar keine wirkliche Idee.

Bitte helft mir auf die Sprünge.

LG
Markus
 
Ich würde PreTranslateMessage() überschreiben und dort die RETURN- und ESC-Taste abfangen.

Gruß
MCoder

C++:
BOOL CMyDialog::PreTranslateMessage(MSG* pMsg) 
{
    if( pMsg->message == WM_KEYDOWN )
    {   
        if( pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_RETURN )
        {
            return TRUE;
        }    
    }

    return CDialog::PreTranslateMessage(pMsg);
}
 
Zurück