![]() |
WM_KEYDOWN lparam
Hi,
Ich verstehe nicht genau was MSDN mir mit der Beschreibung des LPARAMs sagen will.. Zitat:
Zitat:
PS: Ist VK_LEFT ein Extended Key? Gruß Neutral General |
Re: WM_KEYDOWN lparam
Moin Michael,
nein, Bit 24 muss gesetzt sein. |
Re: WM_KEYDOWN lparam
Zitat:
Delphi-Quellcode:
(2^24 natürlich ausrechnen)
if (lparam and 2^24)=2^24 then extended_key
Zitat:
|
Re: WM_KEYDOWN lparam
Hi,
Danke. Also wenn ich nur bit 24 gesetzt haben will dann brauch ich eigentlich nur 2^24 ausrechnen und diese Zahl als Parameter übergeben oder? Naja es klappt trotzdem nicht. Versuche gerade
Delphi-Quellcode:
an meine Anwendung zu senden. Es passiert im KeyPress aber nichts... Wenn ich VK_LEFT durch Ord('A') ersetze funktioniert es.
PostMessage(Handle,WM_KEYDOWN,VK_LEFT,0);
PostMessage(Handle,WM_KEYUP,VK_LEFT,0); Gruß Neutral General |
Re: WM_KEYDOWN lparam
Und mit gesetztem Bit?
Delphi-Quellcode:
PostMessage(Handle,WM_KEYDOWN,VK_LEFT,1 shl 24);
PostMessage(Handle,WM_KEYUP,VK_LEFT,1 shl 24); |
Re: WM_KEYDOWN lparam
Hab herausgefunden das WM_KEYUP sowohl mit als auch ohne gesetztem Bit geht. WM_KEYDOWN geht weder mit noch ohne -.-
|
Re: WM_KEYDOWN lparam
Es sind noch nicht ganz 24 Stunden rum aber ich wollt doch schonmal nachfragen ob jemand den Grund dafür weiß.. Weil ich finde das schons seltsam das das WM_KEYUP ankommt und WM_KEYDOWN nicht..Dann ist auch klar warums nicht ins OnKeyPress Ereignis kommt.. Wo sind denn hier die WinAPI Experten ? :mrgreen:
|
Re: WM_KEYDOWN lparam
Bevor jetzt noch einer mit diesem Problem rumhanpeln muss (wie ich gerade eine ganze zeit lang) poste ich mal die (mögliche) Fehlerquelle:
Insgesamt wird schon das richtige verschickt. Jedoch sagt Windows bzw. der Compiler bei einem VK_Left/Up/Right/Down auf einen Button/Formular/etc wird das Control gewechselt und das KeyEvent gilt als Handled. Somit wird kein weiteres OnKeyDown/OnKeyUp mehr aufgerufen. :x Mit einer EditBox funktioniert´s ganz gut, da wechselt der nicht die Controls. (sowohl mit als auch ohne ExtendedKey) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz