怎么获得整幅BMP图象的RGB

如何获得整幅BMP图象的RGB
各位大虾好,小弟我在获取图象象素点的RGB值时,使用到GetPixel()函数,
情况如下:
CDC*   pDC   =   GetDC();
color   =   pDC-> GetPixel(picture.peis[i][j].point);//picture是自己定义的类
RValue   =   (int)(GetRValue(color));
GValue   =   (int)(GetGValue(color));
BValue   =   (int)(GetBValue(color));

现在我的问题是pDC=GetDC();只能得到当前窗口的可见部分(窗口已添置了滚动条)。当我载入图象时,图象的大小有时会超出窗口的大小,这样我用GetPixel()得到的RGB只能是窗口看见部分的图象的RGB值,而超出窗口的部分得到的却是(255,255,255)的值,请问要怎么修改程序才能得到整个RGB值呢   ?
我找了相关问题,说要把BMP图象加入VC工程的资源,请问要怎么弄呢?因为BMP不是位图,不能直接载入。
或者大虾们有其他的什么好的方法可以得到整个BMP的RGB值?

大虾们帮帮忙啊,毕设急用啊   !!!!小弟我感激不尽啊!!!

------解决方案--------------------
创建一个空白的MemDC,把位图选进去,然后得到位图的高和宽,循环取出这个MemDC的像素就可以了
------解决方案--------------------
// Create memory dc
CDC memDC;
memDC.CreateCompatibleDC(NULL);

// Load bitmap
CBitmap bmp;
bmp.LoadBitmap(...);

// Get bitmap size
BITMAP bm;
bmp.GetBitmap(&bm);
int nWidth = bm.bmWidth;
int nHeight = bm.bmHieght;

memDC.SelectObject(&bmp);

COLORREF clr;
for(int x=0; x < nWidth; x++)
{
for(int y=0; y < nHeight; y++)
{
clr = memDC.GetPixel(x, y);
....
}
}

------解决方案--------------------
我BLOG上有一篇快速简单的方法,可以参考一下