Форум » [x]Harbour » Как загрузить рисунок из ресурса в переменную? » Ответить

Как загрузить рисунок из ресурса в переменную?

Sergey Spirin: Подскажите, пожалуйста, как загрузить рисунок из ресурса в переменную. Из файла memoread, а из ресурса exe?

Ответов - 3

Pasha: Если речь идет о ресурсе из собственного exe, и это битмап, то так: LoadBmpRes(cResName) [pre]#pragma BEGINDUMP #include "hbapi.h" #include "windows.h" HB_FUNC( LOADBMPRES ) { HINSTANCE hMod = GetModuleHandle( 0 ); HRSRC hRes = FindResource( hMod, ( LPSTR ) hb_parc( 1 ), ( LPSTR ) RT_BITMAP ); LONG ulLen; HGLOBAL hglb; BITMAPFILEHEADER bmpFH; LPBITMAPINFOHEADER pBmp; char *szStr; if( hRes ) { ulLen = SizeofResource( hMod, hRes ); hglb = LoadResource( hMod, hRes ); bmpFH.bfType = 0x4d42; bmpFH.bfSize = ulLen + sizeof( bmpFH ); bmpFH.bfReserved1 = bmpFH.bfReserved1 = 0; bmpFH.bfOffBits = sizeof( BITMAPFILEHEADER ) + sizeof( BITMAPINFOHEADER ); szStr = hb_xgrab( ulLen + sizeof( bmpFH ) ); memcpy( szStr, (char *) &bmpFH, sizeof( bmpFH ) ); pBmp = ( LPBITMAPINFOHEADER ) LockResource( hglb ); switch( pBmp->biBitCount ) { case 1: bmpFH.bfOffBits += 2*4; break; case 4: bmpFH.bfOffBits += 16*4; break; case 8: bmpFH.bfOffBits += 256*4; break; } memcpy( szStr + sizeof( bmpFH ), (char *) pBmp, ulLen ); FreeResource( hglb ); hb_retclen( szStr, ulLen + sizeof( bmpFH ) ); hb_xfree( szStr ); } else hb_retc( "" ); }[/pre]

Sergey Spirin: Ok. Спасибо.

Dima: Pasha А как потом эту картинку (из ресурса) вывести на экран средствами WVT (WVG) ?




полная версия страницы