Привет всем!
У меня проблема загружаю картинку с помощью функции
Image* LoadPicture(UINT nResID)
{
HMODULE hModule = GetModuleHandle(NULL);
HRSRC hResource = FindResource(hModule, MAKEINTRESOURCE(nResID), L"binary");
if (hResource == NULL)
return NULL;
HGLOBAL hImage = LoadResource(hModule, hResource);
if (hImage == NULL)
return NULL;
LPVOID pImage = LockResource(hImage);
if (pImage == NULL)
return NULL;
Image* pPicture = NULL;
int size = SizeofResource(hModule, hResource);
HGLOBAL hBlock = GlobalAlloc(GHND, size);
if (hBlock != NULL)
{
LPVOID pBlock = GlobalLock(hBlock);
if (pBlock != NULL)
{
CopyMemory(pBlock, pImage, size);
IStream* pStream;
if (CreateStreamOnHGlobal(hBlock, FALSE, &pStream) == S_OK)
pPicture = Image::FromStream(pStream);
GlobalUnlock(pBlock);
pStream->Release();
}
GlobalFree(hBlock);
}
return pPicture;
}
Все в теории работает ошибок не выдает
но когда питаюсь нарисовать картинку на окне
void OnPaint(HDC hdc, const RECT& rc)
{
Graphics g(hdc);
g.SetPageUnit(UnitPixel);
RectF bounds(0, 0, float(rc.right), float(rc.bottom));
Image* pImage=LoadPicture(IDR_BINARY2);
g.DrawImage(pImage , bounds);
int m;
m=GetLastError();
}
GetLastError выдает 6 The handle is invalid.
Помогите пожалуйста скажите в чем проблема!
Если можно кодом!
Наперед спасибо
26.06.11 21:54: Перенесено из 'C/C++'