2

我对 Windows 编程很陌生,并且一直在关注 Forger 的 Win32 API 编程教程。我一直在尝试在窗口内绘制图像。

看过类似的问题后,这段代码似乎对于加载位图是正确的:

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 的值始终为 null。

我曾尝试使用 LoadBitmap() 将图像作为资源加载,并且有效,这就是为什么我没有包含其余代码的原因。似乎是上面的 LoadImage() 导致了问题,但我不知道为什么。

有人有想法么?我在 Windows 7 64 位上使用 VC++ 运行它。

4

1 回答 1

-1

使用 testImage = (HBITMAP)LoadImage(NULL, L"C:\\ScreenSnip.bmp", IMAGE_BITMAP, 498, 304, LR_LOADFROMFILE); 你使用宽 L"C:.." 所以你必须使用 LoadImageW

于 2013-04-04T15:04:10.097 回答