Ich arbeite an einer kleinen Bildschirmlupe. Bisher habe ich bei Programmstart einen Screenshot gemacht, von dem die entsprechenden Teile vergrößert auf dem Hauptformular dargestellt wurden und wenn der Benutzer mit der Maus klickt, wird die Lupe wieder beendet. Das funktioniert bei sich nicht verändernden Bildschirminhalten ganz gut, aber bei bewegten Bildern (z.B. Videos oder Auftreten von Events, die den Bildschirminhalt verändern) versagt die Lupe, da nach einer Änderung kein neuer Screenshot gemacht wird und man quasi mit der Lupe nur die "Vergangenheit" sieht.
Ich habe jetzt aber eine andere Lupe gesehen, bei der auch bewegte Bilder vergrößert werden können. Und diese Lupe arbeitet mit CreateRectRgn & CombineRgn & SetWindowRgn.
Naja das verknüpfen des Desktops mit meiner Form habe ich schon geschafft:
Delphi-Quellcode:
VAR
region1, region2: hrgn;
begin
region1 := CreateRectRgn(0, 0, Width, Height);
region2 := CreateRectRgn(10, 10, Width - 10, Height -10);
CombineRgn(region1, region1, region2, RGN_DIFF);
SetWindowRgn(
Handle, region1, True);
end;
... aber ich weiß nicht, wie ich das jetzt vergrößert darstellen kann.