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 ?