Всем привет!
Нашел в MSDN пример - ну прямо то,что нужно!
Начал набирать и проверять! Все вроде правильно!
Осталось всего несколько строк до конца И ВДРУГ ОДНА ИЗ СТРОК НЕ РАБОТАЕТ!!!
Работаю в Visual Studio 2013 (C++).
Пишется функция:
......
static HPALETTE Scene_Palette;
static System::Drawing::Image ^ CaptureScene(HDC hdcSrc, int iwidth, int iheight)
{ // hdcSrc - Хендел сцены, iwidth - ширина сцены, iheigh - высота сцены 
 
   
HDC   hdcDest = CreateCompatibleDC(hdcSrc);                             
// Create compatible memory device context(DC)
   
HBITMAP hBitmap = CreateCompatibleBitmap(hdcSrc, iwidth,iheight);   
// Create compatible bitmap 
   
HGDIOBJ hOld = SelectObject(hdcDest, hBitmap);
// Selects an object into the specified device context (DC)
// New object replaces the previous and has the same type
BitBlt(hdcDest, 0, 0, iwidth, iheight, hdcSrc, 0, 0, SRCCOPY);                 
// Copy from Scene into Compatible Bitmap
SelectObject(hdcDest, hOld);                                   
// Restore Selection
DeleteDC(hdcDest);
// Clear compatible memory device context(DC) 
CreateLogicalPalette(hdcSrc);
System::Drawing::Image ^ SceneImage = Image.FromHbitmap(hBitmap,Scene_Palette);                
// Create .NET Image Object
DeleteObject(hBitmap);
// Free up the Compatible Bitmap object
return SceneImage;
// Return Image
}
static void CreateLogicalPalette(HDC hdc)
      {
         if (GetDeviceCaps(hdc, RASTERCAPS) & RC_PALETTE)
         {
            UINT nSize = sizeof(LOGPALETTE)+(sizeof(PALETTEENTRY)* 256);
            LOGPALETTE *pLP = (LOGPALETTE *) new BYTE[nSize];
            pLP->palVersion = 0x300;
            pLP->palNumEntries =
               GetSystemPaletteEntries(hdc, 0, 255, pLP->palPalEntry);
            Scene_Palette = CreatePalette(pLP); // Create Logical Palette
            delete[] pLP;
         }
      }
Функцию Image.FromHbitmap пробовал писать в разных вариантах, c одним и двумя аргументами - ничего не помогает!
Ответы всегда похожие:
Error C2275: 'System::Drawing::Image' : illegal use of this type as an expression 
Error C2228: left of '.FromHbitmap' must have class/struct/union 
Помогите найти истину!
Regards,
Onic777