Um was für Controls handelt es sich denn bei dir?
Eventuell könnte man auch mal mit SendMessage arbeiten, den Result auswerten und bei FALSE/0 mit dem Parent des Controls weitermachen?
[add]
Delphi-Quellcode:
procedure TForm5.MessageHandler(var Msg: TMsg; var Handled: Boolean);
var
H, H2: HWND;
begin
if Msg.message = WM_MOUSEWHEEL then
begin
H := WindowFromPoint(Msg.pt);
H2 := H;
while H2 <> 0 do
begin
if H2 = Msg.hwnd then Exit;
H2 := GetParent(H2);
end;
while H <> 0 do
if SendMessage(H, WM_MOUSEWHEEL, Msg.wParam, Msg.lParam) <> 0 then
begin
Handled := True;
Exit;
end else H := GetParent(H);
end;
end;