Рисование изображения с использованием WinAPI: LoadBitmap работает, а LoadImage() - нет?
Я довольно новичок в программировании Windows и следую Руководству по программированию Win32 API от Forger. Я пытался нарисовать изображение в окне.
Посмотрев на подобные проблемы, этот код кажется правильным для загрузки растрового изображения:
HBITMAP testImage == NULL;
case WM_CREATE:
testImage = (HBITMAP)LoadImage(NULL, L"C:\\ScreenSnip.bmp", IMAGE_BITMAP, 498, 304, LR_LOADFROMFILE);
if(testImage == NULL) {
MessageBox(NULL, L"NO IMAGE LOADED!", L"Error!", MB_ICONEXCLAMATION | MB_OK);
}
break;
У меня есть изображение ScreenSnip.bmp в расположении выше, и его размеры 498*304. Однако LoadImage не работает, и значение testImage всегда равно нулю.
Я попытался загрузить изображение в качестве ресурса с помощью LoadBitmap(), и это работает, поэтому я не включил остальную часть своего кода. Похоже, что LoadImage() выше, что вызывает проблему, но я не могу понять, почему.
У кого-нибудь есть идеи? Я использую VC++ в Windows 7 64bit.
1 ответ
Использование testImage = (HBITMAP)LoadImage(NULL, L"C:\\ScreenSnip.bmp", IMAGE_BITMAP, 498, 304, LR_LOADFROMFILE);
Вы используете широко с L"C:..", поэтому вы должны использовать LoadImageW