... ich habe etwas ähnliches mal mit einem extra Overlay Fenster mit Transparent-Color = clWindow und folgender CreateParams procedure.
In dem Fenster kannst du dann auf den Canvas zeichnen. Den Rest mach dann Windows für dich.
Delphi-Quellcode:
unit ufrmOverlay;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.ExtCtrls;
type
TfrmOverlay =
class(TForm)
protected
procedure CreateParams(
var Params: TCreateParams);
override;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
implementation
{$R *.dfm}
{ TfrmOverlay }
procedure TfrmOverlay.CreateParams(
var Params: TCreateParams);
begin
inherited CreateParams(Params);
if Assigned(Application.MainForm)
then
begin
Params.WndParent := GetDesktopWindow;
Params.Style := WS_ChildWindow;
Params.EXStyle := WS_EX_NoActivate;
end;
end;
end.