不想用GetPixel,怎样把屏幕上某个区域的点存储到一个颜色数组里面,该怎么解决

不想用GetPixel,怎样把屏幕上某个区域的点存储到一个颜色数组里面
比如说我要把屏幕上CRect(0,0,40,40)这块的图像存储到一个COLORREF clr[40][40]里面

GetPixel太慢了,大家有什么更好的方法么


------解决方案--------------------
HDC hDCScreen = CreateDC("DISPLAY",NULL,NULL,NULL);
HDC hMemDC = CreateCompatibleDC (hDCSCreen);
HBITMAP hBmp = CreateCompatibleBitmap (hDCScreen, 40, 40);
SelectObject (hMemDC, hBmp);
BitBlt (hMemDC, 0, 0, 40, 40, hDCSCreen, 0, 0, SRCCOPY);

///////////////////////
hBmp 就指向了你要的那个位图。
------解决方案--------------------
那我如何像浏览数组clr[i][j]一样浏览hBmp中的颜色值呢

C/C++ code

  //定义数组指针
  typedef TCHAR (*f)[40][40];
  //
  f d = (f)hBmp;
    
 (*d)[1][1] 像素
 (*d)[1][2] 像素
  。。。。。。