ESC <-> OnCancel verhindern des schließens des Dialogs durch ESC



  • Huhu,

    das Schließen des Dialogs durch den Tastendruck ESC kann wie folgt verhindert werden.
    Fügt in dem jeweiligen Dialog die Funktion PreTranslateMessage ein und tragt folgende Zeile hinzu.

    if ((pMsg->message == 0x100) && (pMsg->wParam == 27)){return FALSE;}

    Durch diese Zeile wird verhindert das der Dialog beim Drücken auf ESC geschlossen wird.
    Über das Systemmenü ("x") ist dennoch das Schließen des Dialoges möglich.

    Hier das Beispiel so sollte es dann aussehen wenn es fertig ist.

    BOOL CMyDlg::PreTranslateMessage(MSG* pMsg) 
    {
    	/////////////////////////////////////////////////////
    	// This line avoids closing program with ESC key.
    	if ((pMsg->message == 0x100) && (pMsg->wParam == 27)){return FALSE;}
    	/////////////////////////////////////////////////////
    	//
    	// This line is for ToolTips you can ignore that
    	m_ctlToolTips.RelayEvent(pMsg);
    	/////////////////////////////////////////////////////
    	return CDialog::PreTranslateMessage(pMsg);
    }
    


  • if ((pMsg->message == 0x100) && (pMsg->wParam == 27)){return FALSE;}

    wie heisst der ausdruck denn mit den passenden defines?



  • if ((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_ESCAPE)){return FALSE;}
    

    Bitte fein.......


Anmelden zum Antworten