Загрузка jpg картинки с ресурса Gdi+
От: OlkV  
Дата: 26.06.11 06:15
Оценка:
Привет всем!
У меня проблема загружаю картинку с помощью функции


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++'
visual studio winapi
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.