试着写了一段简单的代码如下,
目的是想把屏幕的图像捕获到自己窗口客户区
switch(message)
{
case WM_CREATE:
hevent=CreateEvent(NULL,TRUE,TRUE,NULL); //事件对象
_beginthread(pro,0,&pa);
return 0;
case WM_LBUTTONDOWN:
SetEvent(hevent); //左键进程运行
return 0;
case WM_RBUTTONDOWN:
ResetEvent(hevent); //右键进程挂起
return 0;
....
}VOID pro(PVOID para)
{
PPARA p;
p=(PPARA)para;
HDC hdccli,hdcwind;
hdccli=GetDC(hwnd); //hwnd 为我的窗口句柄
hdcwind=GetDC(NULL); //屏幕窗口句柄
while (1)
{
WaitForSingleObject(hevent,INFINITE);
BitBlt(hdccli,0,0,500,500,
hdcwind,0,0,SRCCOPY); //把屏幕当前图像捕获到我的窗口
}
}我的问题是,如果我播放一个电影,却无法捕获
即使把hdcwind改成播放器的窗口句柄也不行
请问是不是还有啥奥妙?
目的是想把屏幕的图像捕获到自己窗口客户区
switch(message)
{
case WM_CREATE:
hevent=CreateEvent(NULL,TRUE,TRUE,NULL); //事件对象
_beginthread(pro,0,&pa);
return 0;
case WM_LBUTTONDOWN:
SetEvent(hevent); //左键进程运行
return 0;
case WM_RBUTTONDOWN:
ResetEvent(hevent); //右键进程挂起
return 0;
....
}VOID pro(PVOID para)
{
PPARA p;
p=(PPARA)para;
HDC hdccli,hdcwind;
hdccli=GetDC(hwnd); //hwnd 为我的窗口句柄
hdcwind=GetDC(NULL); //屏幕窗口句柄
while (1)
{
WaitForSingleObject(hevent,INFINITE);
BitBlt(hdccli,0,0,500,500,
hdcwind,0,0,SRCCOPY); //把屏幕当前图像捕获到我的窗口
}
}我的问题是,如果我播放一个电影,却无法捕获
即使把hdcwind改成播放器的窗口句柄也不行
请问是不是还有啥奥妙?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货