Bei WM_LBUTTONDOWN setze ich den Focus auf den Container wo sich meine Sprites befinden.
Dieses wird dann identifiziert und ich setzte die FocusID.
SprCon.gSetObjectFocusID(SprCon.CurOverObject, 1);
Wenn die Callback registriert ist feuere ich das Event.
Delphi-Quellcode:
If Assigned(SprCon.g_Prop[gP].CallBack) then
begin
if SprCon.g_Prop[gP].CallBack(WinHandle, Msg, wP, lP) <> 0 then
begin
Result := 0;
exit;
end;
end;
WM_KEYDOWN, UP tut nichts anderes als die Message über die Callback weiterzuleiten.
Warum soll die zu spät kommen?
VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT haben keine Auswirkung, alle VK_NUMPADxxx funktionieren hingegen.
Delphi-Quellcode:
WM_KEYDOWN, WM_KEYUP:
begin
If Assigned(SprCon.g_Prop[gP].CallBack) then
begin
if SprCon.g_Prop[gP].CallBack(WinHandle, Msg, wP, lP) <> 0 then
begin
Result := 0;
exit;
end;
end;
end;
Zitat:
Wie Du das bei Non-
VCL hin bekommst, weiß ich nicht, aber ich vermute wohl über KeyboardHook.
Habe in noch keiner Anwendung wegen dieser Keys einen Hook setzen müssen weder unter
OpenGL noch mit WIn32API mitteln
gruss