在我的.rc文件中,我添加了一行:
IMG BITMAP "myIMG.bmp" //add to resources
.cpp文件中的原型:
HBITMAP Image;
ShowWindow()
之后,我用将其加载到内存中
Image=LoadBitmap(hInstance,"IMG");
在WM_CREATE:
上,我将其加载到屏幕上并清除:
HDC GetDC (hdc);
HDC newhdc = CreateCompatibleDC(hdc);
SelectObject(newhdc,Image);
BitBlt(hdc,30,70,491,302,newhdc,0,0,SRCCOPY);
DeleteDC(newhdc);
DeleteObject(Image);
ReleaseDC(hwnd,hdc);
感谢@BeneGal问题(建立在这里),我创建了一个MB,它告诉img是否未加载:
if(Image == NULL) {
MessageBox(NULL, "NO IMAGE LOADED!", "Error!", MB_ICONEXCLAMATION | MB_OK);
}
当我把上面的代码粘贴在ShowWindow()
之后时,MB不会出现,当我把它粘贴在WM_CREATE:
上时,它会出现。不知道为什么。
编辑:实际上我忘了告诉我,图像没有出现在我的窗口上,这是主要的问题。
在WM_CREATE中加载位图,在WM_PAINT中使用它。通过SelectObject跟踪返回对象,不要删除HDC中仍然选择的对象。做这样的事http://www.winprog.org/tutorial/bitmaps.html