Hallo Leute!
Habe hier eine mittlerweile recht grosse
NonVCL-Anwendung mit NonWindows graphischer Benutzeroberfläche gebastelt.
Die Dialoge erstelle ich mit
DialogBoxParam. Die Steuerelemente werden in WM_
INITDIALOG erzeugt. Es gibt eine Reihe Steuerelemente, die kein Fensterhandle aufweisen. Kann man mit dem
VCL Konstrukt [b]vergleichen. Es gibt also auch Dialoge, die ausser dem Dialog selber kein Fensterhandle mehr mitbringen. Das nur so als Einleitung.
Nun möchte ich ermöglichen, dass die Dialoge alternativ auch mit
Return (OK) und
Escape (Abbrechen) geschlossen werden können. Ich reagiere dazu auf die Message WM_
COMMAND:
Delphi-Quellcode:
WM_COMMAND: Begin
Case LoWord(wParam) of
1: EndDialog(AWnd,1);
2: EndDialog(AWnd,0);
End;
End;
Diese Vorgehensweise funktioniert in der laufenden Anwendung genau ein einziges Mal. Danach höre ich auf jeden weiteren Tastendruck nur Ping Ping Ping.
Dieses Phänomen ist unabhängig davon, ob die dasselbe Fenster oder ein anderes öffne. WM_
KEYDOWN oder WM_
KEYUP kann ich nicht verwenden, da die Messages nicht mehr zum Dialog durchdringen, sobald ich ein Control mit Fensterhandle verwende.
Freue mich auf jeden Hinweis! Werde derweil versuchen, ob ich mit ner Accelerator Tabelle ne Lösung hinbekomme ...
Mahlzeit
Der OLLI