/*以前写过一个在C#下面的屏幕捕捉程序,现在用C++在VC下实现.个体步骤:
1.获取桌面窗口指针,并建立一个与之兼容的设备环境
2.创建一个与桌面窗口指针相兼容的内存位图
3.以位图形式将屏幕图像复制到新创建的位图之中*/
char dot[1572864]; //1024*768*2
CBitmap bmp; //内存位图
CDC wdc; //设备环境
CDC* pDC; //指向桌面窗口的设备环境指针
......
void CSurveillant_ServerView::OnInitialUpdate()
{
........
static CWindowDC ddc(GetDesktopWindow()); //引用桌面窗口指针定义对象ddc
pDC=&ddc; //将指针pdc指向ddc
wdc.CreateCompatibleDC(pDC); //建立与ddc兼容的设备环境
bmp.CreateCompatibleBitmap(pDC,1027,768); //建立与ddc兼容的位图
wdc.SelectObject(&bmp); //选择位图
StartServer(); //开启一下定时器,定时调用CDC类成员的BitBlt()捕获现
//主机的屏幕信息,并随即将其通过一个建立了连接的套结字
//发送给客户机。
}
void CSurveillant_ServerView::OnTimer(UINT nIDEvent)
{
wdc.BitBlt(0,0,1024,768,pDC,0,0,SRCCOPY);//把桌面复制到wdc的bmp中
......//将图像发出去
}