Ich habe exakt das Verhalten mit einer abgeleiteten Paintbox so gelöst:
Delphi-Quellcode:
TRaster = class(TPaintBox)
private
FLaserControl: TControl;
procedure SetLaserControl(const Value: TControl);
protected
procedure CMHitTest(var Msg: TWMMouse); message CM_HITTEST;
...
procedure TRaster.CMHitTest(var Msg: TWMMouse);
begin
inherited;
Msg.Result := 0;
end;
Für andere Controls muss man eine ähnliche Lösung umsetzen (da dort nicht CHHitTest ausgewertet wird). Das müsste ich dann mal zu Hause nachschauen.