Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2
  Alt 3. Jul 2002, 11:05
Man braucht nur die Threads unterhalb des Artikels durchlesen (-> "Could be done without hooks" was sich aber dann doch anders entpuppt).

Schmeis das Subclassing heraus und ersetze deinen Hook-Callback durch diesen:
Code:
function HookCallWndProc(nCode: Integer; wParam, lParam: Longint): Longint; stdcall;
var
  cwps: TCWPStruct;
  lRet: THandle;
  szClass: array[0..8] of char;
begin
  if (nCode = HC_ACTION) then
  begin
    CopyMemory(@cwps, Pointer(lParam), SizeOf(CWPSTRUCT));
    case cwps.message of
      WM_CREATE:
        begin
          GetClassName(cwps.hwnd, szClass, Length(szClass) - 1);
          // Window name for menu is #32768
          if (lstrcmpi(szClass, '#32768') = 0) then
{*** Unterschied zu deinem Hook}
            MakeWndTrans(cwps.hwnd, 50{Alphablending});
{*** der Rest ist herausgefallen}
        end;
    end;
  end;
  // Call the next hook in the chain
  Result := CallNextHookEx(WH_CALLWNDPROC, nCode, wParam, lParam);
end;
  Mit Zitat antworten Zitat