Einzelnen Beitrag anzeigen

Benutzerbild von MasterEvil
MasterEvil

Registriert seit: 12. Feb 2005
Ort: Hannover
234 Beiträge
 
Delphi 7 Enterprise
 
#1

WH_CBT Hook mit HCBT_MOVESIZE

  Alt 8. Jul 2009, 16:35
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
  Mit Zitat antworten Zitat