Tastaturabfrage

alika

Grünschnabel
Hallo

Ich habe eigentlich eine ganz simple Frage. Ich habe ein Dialogfenster und möchte je nachdem was für ein Zeichen auf der Tastatur gedrückt wurde was anderes darstellen. Das Ganze wollte ich über OnChar abfangen. Das Problem ist aber dabei, dass die Nachrichten nicht gesendet werden, d.h. im Spy++ sind diese nicht zu sehen. Weiß jemand warum?

(Die Mausnachrichten kann ich dagegen empfangen und auch verarbeiten)

Danke,
Alika
 
"OnChar()" gibt es nur bei Edit-Feldern. Beim Dialog kannst du die Tastendrücke über "PreTranslateMessage()" abfragen. Diese Methode kannst du über Eigenschaften -> Überschreibungen (ab VS2003) bzw. den Klassenassistenten (VS6) einfügen. Die gedrückte Taste wird über ihren Virtual-Key Codes identifiziert. Eine Liste der Key Codes findest du in der MSDN.
Hier ein Beispiel für die RETURN-Taste:
C++:
BOOL MyDialog::PreTranslateMessage(MSG* pMsg) 
{
    if( pMsg->message == WM_KEYDOWN )
    {   
        switch( pMsg->wParam )
        {
            case VK_RETURN:
                // ... irgendwas tun
               return TRUE;
        }
    }

    return CDialog::PreTranslateMessage(pMsg);
}
Gruß
MCoder
 

Neue Beiträge

Zurück