CDialog::OnOk() Problem mal anders
-
Jeder bemängelt ja, dass er gerne das Enter abgefangen haben will und ich hatte das auch erst. Nun kam die Anforderung zu mir, der Dialog soll auch mit Enter schließbar sein.
Ich dachte mir einfach alles von OnOk löschen, dürfte ausreichen. Es sollte sich als nicht so einfach erweisen.
Habe ich jetzt eine andere Möglichkeit außer das keydown Event abzufangen und dann VK_ENTER zu behandeln?
Ich wäre dankbar über jede Hilfe und bedanke mich jetzt schon mal für die Aufopferung der Zeit, diesen Artikel gelesen zu haben.
-
Ich dachte mir einfach alles von OnOk löschen
Du kannst doch in OnOk
EndDialog(IDOK)reinschreiben. Oder verstehe ich dich jetzt falsch?
Ansonsten VK_ENTER in PreTranslateMessage abfragen und behandeln.
-
Ich will einfach wieder, dass der Dialog per Enter geschlossen werden kann.
Wird wohl nur mit abfangen des Buttons gehen. Schade
-
Ich muss mich mal fest anmelden^^ Kommen ja häufiger Probleme. C# ist ja hier auch dabei.
Aber hier ist erstmal meine Lösung:
BOOL CSysInfoResource::PreTranslateMessage(MSG* pMsg) { if(pMsg->message == WM_KEYDOWN) { // Enter-Taste abfangen if(pMsg->wParam == VK_RETURN) { CDialog::OnOK(); } } return CDialog::PreTranslateMessage(pMsg); }Obwohl ich immer noch der Meinung bin, dass muss einfacher gehen

Aber danke @ Tester2 mit PreTranslateMessage war es einfach zu handhaben.
-
gehts auch...
void CDeinDialog::OnOK() { CDialog::OnOK(); }weiß ja nicht was das Problem ist...
-
So hatte ich es erst. Da funktionierte bei mir nur der Button oder wenn er fixiert war Space. Allerdings war es nicht mit Enter möglich. Naja geht ja jetzt.
Aber nen Grund warum das nicht ging, weiß auch keiner oder?