我在网上看了很多的方法,可是都不行
只好来麻烦各位了,以下是截图的代码段://拷贝屏幕图像
HBITMAP CopyScreenToBitmap(LPRECT pRect)
{
//屏幕和内存设备描述表
HDC hScrDC,hMemDC;
//位图句柄
HBITMAP hBitmap,hOldBitmap;
//选定区域坐标,left,top,right,bottom
int nX,nY,nX2,nY2;
int nWidth,nHeight;
//确保区域不为空
if( IsRectEmpty(pRect) )
{
return NULL;
} //为屏幕创建设备描述表
hScrDC=CreateDC(_T("DISPLAY"),NULL,NULL,NULL);
//为屏幕设备描述表创建关键兼容内存描述表
hMemDC=CreateCompatibleDC(hScrDC); //获得选定区域坐标
nX=pRect->left;
nY=pRect->top;
nX2=pRect->right;
nY2=pRect->bottom; //确保选定区域可见
if( nX<0 )
nX=0;
if( nY<0 )
nY=0;
if( nX2>g_xScreen )
nX2=g_xScreen;//屏幕像素
if( nY2>g_yScreen )
nY2=g_yScreen; nWidth=nX2-nX;
nHeight=nY2-nY; //创建一个与屏幕设备描述表兼容的位图
hBitmap=CreateCompatibleBitmap(hScrDC,nWidth,nHeight);
//把新位图选到内存设备描述表中
hOldBitmap=(HBITMAP)SelectObject(hMemDC,hBitmap); //把屏幕设备描述表拷贝到内存设备描述表
BitBlt(hMemDC,0,0,nWidth,nHeight,hScrDC,nX,nY,SRCCOPY);
//得到屏幕位图的句柄
hBitmap=(HBITMAP)SelectObject(hMemDC,hOldBitmap); DeleteDC(hScrDC);
DeleteDC(hMemDC); return hBitmap;
}我返回位图的句柄,然后在对话框中响应
case WM_ERASEBKGND:
//贴上屏幕图片刷新背景
dc=(HDC)wParam;
MemDC=CreateCompatibleDC(dc);
SelectObject(MemDC,g_hBitmap);
BitBlt(dc,0,0,g_xScreen,g_yScreen,MemDC,0,0,SRCCOPY);
DeleteDC(MemDC);

break;可就是不能截~...请知道的指点下吧,谢谢