找到的别人的东东:
屏幕变灰:
procedure DarkScreen;
const
bMask: array [0..15] of Byte = ( $33, 0, $CC, 0, $33, 0,
$CC, 0, $33, 0, $CC, 0, $33, 0, $CC, 0);
var
Bitmap: HBITMAP;
Pattern: HBRUSH;
DCScreen: HDC;
OldPattern: HGDIOBJ;
begin
Bitmap := CreateBitmap(8, 8, 1, 1, @bMask);
Pattern := CreatePatternBrush(Bitmap);
DCScreen := GetDC(0);
OldPattern := SelectObject(DCScreen, Pattern);
BitBlt(DCScreen, 0, 0, Screen.Width, Screen.Height, 0, 0, 0, $A000C9);
SelectObject(DCScreen, OldPattern);
ReleaseDC(0, DCScreen);
DeleteObject(Bitmap);
DeleteObject(Pattern);
end;
恢复:
procedure RepaintScreen;
var
r : TRect;
begin
r := Screen.DesktopRect;
InvalidateRect(0, @r, true);
end;