Hallo,
ich habe eine Bildschirmtastatur entwickelt und brauchte einen WH_CBT Hook (lokaler Hook), um zu erkennen wann sich der Fokus auf ein anderes Control geändert hat (HCBT_SETFOCUS). Dies hat auch soweit alles wunderbar geklappt.
Ich blenden bei diesem Keyboard als TOPMOST-Fenster Wortvorschläge ein und dieses Fenster wird nicht mit verschoben, wenn sich das Formular verschiebt. Da ich nun schon einen Hook hatte, dachte ich, reagieren wir doch auch auf HCBT_MOVESIZE und verschieben das Fenster mit. HCBT_MOVESIZE soll immer ausgelöst werden, wenn ein Window sich verschiebt oder seine Größe ändert. Der Code wird nur leider nicht ausgelöst ...
Delphi-Quellcode:
function HookProc(Code: Integer; WParam: wParam; LParam: lParam): LRESULT;
begin
if Code=HCBT_SETFOCUS then
begin
if FCompletionUse then FCompletion.CurrentWordClear;
end else if Code=HCBT_MOVESIZE then
begin
if FCompletion.Visible then FCompletion.UpdatePosition;
end;
Result:=CallNextHookEx(FHook,Code,WParam,LParam);
end;
Code=HCBT_SETFOCUS kommt an, Code=HCBT_MOVESIZE kommt nicht an.
Hat evtl. jemand eine Idee, warum diese Meldung bei mir nicht ankommt?
Gruß,
Steffen