Хорошо, в вашем коде есть ряд ошибок
1) Вы передаете список изображений по объектам, что означает, что он скопирует их. Передача по ссылке - гораздо лучший план.
2) Вы не передаете указатель на структуру IMAGEINFO в GetImageInfo.
3) Вы неправильно понимаете, как работает «FromHandle». FromHandle - это статическая функция, которая возвращает указатель на растровое изображение. В своем коде вы вызываете функцию, а затем игнорируете возвращенную CBitmap * и возвращаете копию вновь созданного объекта (т.е. он ничего не содержит), что приводит к вашему черному экрану.
Учитывая все это, вы должны иметь код, который выглядит следующим образом:
CBitmap* GetIndividualBitmap(CImageList& oImgList, int nBmpNo)
{
IMAGEINFO imgInfo;
oImgList.GetImageInfo( nBmpNo, &imgInfo );
return CBitmap::FromHandle( imgInfo.hbmImage );
}