Einzelnen Beitrag anzeigen

OLLI_T

Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
 
Delphi 5 Enterprise
 
#1

NONVCL: Dialog mit ENTER bzw. ESCAPE schliessen

  Alt 1. Dez 2004, 13:21
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
No Pain No Gain!
  Mit Zitat antworten Zitat