Accelerator mit Dialog Boxen nutzen
-
Ich möchte in meiner Software gerne für die Oberfläche ein paar Hotkeys verwenden. Was mit hilfe von Acceerator eigentlich recht ein zu realisieren ist. Nur leider kann ich die
TranslateAcceleratorFunktion nicht nutzen, da ich das gesamte Proramm mit Dialog Boxen geschrieben habe.
Gibt es da eine einfach Lösung ohne umständliches Subclassen.
Ich verwende übrigens kein MFC und möchte die auch nicht tun.
-
Da nützt kein Subclassen. TranslateAccelerator muss in die MessageLoop eingebaut werden.
Verwende eine eigene Routine um Modale Dialog zu simulieren.
- Erzeuge die Dialog nicht modal
- Disable das Parent Window
- Baue eine Nachrichtenschleife auf, die IsDiaogMessage verwendet und auch TranslateAccelerator
- Kontrolliere ob EndDialog aufgerufen wird (IMHO ist das ein Wert den man mit GetWindowLong erhalten kann)
- Parent enablen
- Dialog zerstörenAnders macht es die MFC auch nicht. Dort kannst Du Dir den ganzen DoModal Code kopieren.