2 Dialoge & Tastensteuerung



  • Hallo User,

    ich habe in meinem Programm 2 Dialoge bei welchen ich unterschiedlich auf Tastenanschläge reagieren möchte. Das ganze habe ich bis jetzt folgendermaßen realisiert :

    BOOL CAppDlg::PreTranslateMessage(MSG* pMsg) 
    {
    	BOOL bHandled = FALSE;
    
    	if(pMsg->message == WM_KEYDOWN)
            {
    
               if(pMsg->wParam == VK_ESCAPE)
               {
        	       EndDialog(IDCANCEL);
    	       bHandled = TRUE;
               }
    
               if(pMsg->wParam == VK_PRIOR)
    	   {
    	       // Reaktion
    	       bHandled = TRUE;
    	   }
    
    	   if(pMsg->wParam == VK_NEXT)
    	   {
    	       // Reaktion
    	       bHandled = TRUE;
    	   }	  
    	}
    
    	return bHandled ? FALSE : CDialog::PreTranslateMessage(pMsg);
    }
    

    Jetzt muss ich aber in Dialog 1 auf VK_PRIOR und VK_NEXT verschieden reagieren. Funktioniert soweit auch wunderbar, eben für jeden Dialog eine eigene PreTranslateMessage Funktion.

    ABER : Drücke ich in Dialog 2 die ESC Taste, schließt er das ganze Programm. Nach debuggen habe ich gesehen, dass er erst in Dialog 2 die Anweisungen für VK_ESCAPE ausführt, danach sofort in Dialog 1 geht und dort wieder die Anweisungen für VK_ESCAPE ausführt. Logischerweise ist nach 2mal EndDialog dann das ganze Programm geschlossen. Kann ich das irgendwie ändern ? Bzw ... warum geht er direkt nach der ersten PreTranslateMessage Funktion gleich in die zweite ?

    Danke für eure Hilfe !



  • Keiner eine Idee ?


Anmelden zum Antworten