屏幕融化了,好像雪糕一样,颜色一块一块地向下淌,淌得一塌糊涂。
  呵呵,这就是我们今天的恶作剧!
  打开VB,新建一个工程,新建一个模块,然后移去窗体:本程序不需要窗口。在模块中声明以下作案工具吧!这次没有什么新的Api: Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long Private Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As Any, ByVal bErase As Long) As Long Private Const SRCCOPY = &HCC0020   注意:InvalidateRect原先的第二个参数是“lpRect As RECT”,不太好用,我把它改为“As Any”了。
  然后就可以写程序了: Sub main() Dim myDC As Long '获取屏幕分辨率 ScrX% = Screen.Width / Screen.TwipsPerPixelX ScrY% = Screen.Height / Screen.TwipsPerPixelY myDC& = GetDC(0) For i& = 0 To 20000 bWidth% = Int(Rnd(1) * 3) bHeight% = Int(Rnd(1) * 3) x% = Int(Rnd(1) * ScrX% / 2) - bWidth% y% = Int(Rnd(1) * ScrY%) - bHeight% '将一块图形向下拷贝,模拟融化效果 BitBlt myDC&, x%, y%, x% + bWidth%, y% + bHeight%, myDC, x% + Int(Rnd(1) * 3) - 1, y% - (Rnd(1) * 2), SRCCOPY Next i& ReleaseDC 0, myDC '强制屏幕重画,以恢复屏幕原来的面目 InvalidateRect 0, 0, True End Sub   运行一下,怎样?屏幕化了吧?
  为了方便你捣乱,我特意提供免安装版,下载去干坏事吧!