Guten Morgen Allerseits!
Ich werd noch bekloppt!
In einem Dialog sollen diverse Einstellungen, die graphisch dargestellt werden, schnell via Tastatur ausgewählt werden.
Also hab ich munter meine Ressourcen um eine Accelerator Tabelle erweitert und die Mainloop des Programms entsprechend aufgebohrt. AccelWnd ist das
Handle des Fensters, das den Tastendruck verarbeiten soll.
Delphi-Quellcode:
If (TranslateAccelerator(AccelWnd,Accel,Msg)=0) Then Begin
TranslateMessage(Msg);
DispatchMessage(Msg);
End;
Funktioniert bis dahin alles wunderbar. Der Accelerator hat ein gültiges
Handle und das Hauptfenster meiner Anwendung bekommt Post in Form einer WM_COMMAND Message. Dieses Fenster wird übrigens mit
CreateWindowEx erzeugt ...
Das Dumme ist nur, dass die Accelerator-Geschichte für eine Dialog gedacht, ist der vom Hauptfenster mit
DialogBoxParam geöffnet wird. Tja und an dieser Stelle schweigt der Accelerator. Hat sich was mit WM_COMMAND. (Wobei ESCAPE und ENTER wunderbar funktionieren).
Was ist da los? Wollen
Accelerator und
Dialoge nicht miteinander?
Vielen Dank schon mal
Der OLLI