在我的.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:
上时,它会出现。不知道为什么。
编辑:实际上我忘了告诉我的窗户上没有出现图像,这是主要问题。
答案 0 :(得分:1)
在WM_CREATE中加载位图,在WM_PAINT中使用它。通过SelectObject跟踪返回对象,不要删除仍在HDC中选中的对象。做类似http://www.winprog.org/tutorial/bitmaps.html
的事情