Unser User
Nicodius hat folgenden SourceCode veröffentlicht, mit dem es möglich ist den ganzen Bildschirm zu invertieren. Jedenfalls bis zum nächsten Repaint.
Jens Schumann und
Robert_G haben an dem Source noch ein wenig mitgewirkt.
Delphi-Quellcode:
var
dc: HDC;
DestopWindowHandle: hWND;
begin
DestopWindowHandle := GetDesktopWindow;
dc := GetWindowDC(DestopWindowHandle);
// Desktop erfassen
try // Resource angefordert -> Resourcenschutzblock verwenden
{Das zu bearbeitende Feld (hier der ganze Bildschirm}
Invertrect(
dc, Screen.DesktopRect);
// Invertieren
finally
// da der DC des DesktopWindows angefordert wurde, muss hier auch
// das Handle des DesktopWindows angegeben werden
ReleaseDC(DestopWindowHandle,
dc);
// DC wieder freigeben
end;
end;