c++怎么截屏啊,得到整个屏幕的HBitmap

HBITMAP CopyScreenToBitmap(int &nWidth, int &nHeight){
//屏幕和内存设备描述表
HDC hScrDC, hMemDC;
//位图句柄
HBITMAP hBitmap, hOldBitmap;
//屏幕分辨率
int xScrn, yScrn;
//为屏幕创建设备描述表
//hScrDC = CreateDC(L"DISPLAY", NULL, NULL, NULL);
HWND hw=getHandle(1);
hScrDC= GetDC(hw);
//为屏幕设备描述表创建兼容的内存设备描述表
hMemDC = CreateCompatibleDC(hScrDC);
//获得屏幕分辨率
xScrn = GetDeviceCaps(hScrDC, HORZRES);
yScrn = GetDeviceCaps(hScrDC, VERTRES);

    //存储屏幕的宽度
    nWidth = xScrn;
    nHeight = yScrn;

    //创建一个与屏幕设备描述表兼容的 位图
    hBitmap = CreateCompatibleBitmap(hScrDC, xScrn, yScrn);
    //把新位图选到内存设备描述表中
    hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap);
    //把屏幕设备描述表拷贝到内存设备描述表中
    BitBlt(hMemDC, 0, 0, xScrn, yScrn, hScrDC, 0, 0, SRCCOPY);
    //得到屏幕位图句柄
    hBitmap = (HBITMAP)SelectObject(hMemDC, hOldBitmap);
    //清除
    //DeleteDC(hScrDC);
    ReleaseDC(hw,hScrDC);
    DeleteDC(hMemDC);

    //返回位图句柄
    return hBitmap;

}
我想做个c++的屏幕找图程序,我找到这段代码,但是这个获得的好像是桌面的位图啊。

http://www.lellansin.com/c-gdi-%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE.html