Проблема с загрузкой растрового изображения с помощью функции LoadImage () - PullRequest
0 голосов
/ 06 августа 2020

Я разрабатываю приложение на C ++ на Windows CE 2013.

Я хочу загрузить растровое изображение из файла и показать его на экране.

Проблема в LoadImage() функция всегда возвращает NULL.

HDC hdcOkno;
hdcOkno = GetDC(hWnd);
HBITMAP hbmObraz;
hbmObraz = (HBITMAP)LoadImage(NULL, L"C:\\Users\\tykab\\OneDrive\\Pulpit\\bitmapy\\background_blue.bmp", IMAGE_BITMAP, 0, 0, NULL);
BITMAP bmInfo;
GetObject(hbmObraz, sizeof(bmInfo), &bmInfo);
BitBlt(hdcOkno, 50, 50, bmInfo.bmWidth, bmInfo.bmHeight, hdcOkno, 0, 0, SRCCOPY);

1 Ответ

3 голосов
/ 06 августа 2020

Обновление:

Поскольку вы работаете на платформе Windows CE, LoadImage() не может загружать растровые изображения из файлов. Вместо этого следует использовать SHLoadDIBitmap().

Исходный ответ :

Из документации LoadImage :

name

Тип: LPCTSTR

...

Если параметр hinst равен NULL, а * Параметр 1031 * опускает значение LR_LOADFROMFILE, lpszName указывает OEM-образ для загрузки ...

...

Если параметр fuLoad включает LR_LOADFROMFILE значение, lpszName - имя файла, содержащего автономный ресурс (значок, курсор или файл растрового изображения). Поэтому установите hinst в NULL.

Вы не указываете флаг LR_LOADFROMFILE в параметре fuLoad. Последний параметр при загрузке файла должен быть установлен следующим образом:

LR_DEFAULTSIZE | LR_LOADFROMFILE

Как упоминалось в комментариях, всегда рекомендуется проверять GetLastError() на наличие ошибок.

...