一个好玩的win 32 程序!!!!!!!!!!!!!!!!!
#include "stdafx.h"//#include<windows.h>
//如果有错误将上面的注释取消
#define NUM 300
int main(int argc, char* argv[])
{
// TODO: Place code here.
static int iKeep[NUM][4];
HDC hdcScr, hdcMem;
int cx,cy;
HBITMAP hBitmap;
HWND hWnd;
int i,j,x1,y1,x2,y2;
//MSG msg;
//HACCEL hAccelTable;
if(LockWindowUpdate(hWnd = GetDesktopWindow())) //将所有窗口的更新锁定
{
hdcScr = GetDCEx(hWnd,NULL,DCX_CACHE | DCX_LOCKWINDOWUPDATE); //获得屏幕的设备
hdcMem = CreateCompatibleDC(hdcScr); //创建一个屏幕设备
cx = GetSystemMetrics(SM_CXSCREEN)/10; //取得屏幕的宽的10之1
cy = GetSystemMetrics(SM_CYSCREEN)/10; //取得屏幕的高的10之1
hBitmap = CreateCompatibleBitmap(hdcScr,cx,cy);
SelectObject(hdcMem,hBitmap); //创建一个位图
srand((int)GetCurrentTime()); //取得时间
for(i = 0; i < 2; i++)
for(j = 0; j < NUM; j++)
{
if(i == 0)
{
iKeep[j][0] = x1 = cx * (rand()%10);
iKeep[j][1] = y1 = cy * (rand()%10);
iKeep[j][2] = x2 = cx * (rand()%10);
iKeep[j][3] = y2 = cy * (rand()%10);
}
else
{
x1 = iKeep[NUM - 1 - j][0];
y1 = iKeep[NUM - 1 - j][1];
x2 = iKeep[NUM - 1 - j][2];
y1 = iKeep[NUM - 1 - j][3];
}
BitBlt(hdcMem,0,0,cx,cy,hdcScr,x1,y1,SRCCOPY); //将屏幕上的图像复制到自创的设备上
BitBlt(hdcScr,x1,y1,cx,cy,hdcScr,x2,y2,SRCCOPY); //将屏幕上的图像复制到自身屏幕上
BitBlt(hdcScr,x2,y2,cx,cy,hdcScr,0,0,SRCCOPY); //同上
Sleep(10);
}
DeleteDC(hdcMem);
ReleaseDC(hWnd,hdcScr);
DeleteObject(hBitmap);
LockWindowUpdate(NULL); //解除屏幕锁定
}
return 0;
}