Winapi LoadBitmap()不从我的资源加载图像

时间:2013-08-23 08:42:09

标签: winapi bitmap hbitmap hdc

在我的.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:上时,它会出现。不知道为什么。

编辑:实际上我忘了告诉我的窗户上没有出现图像,这是主要问题。

1 个答案:

答案 0 :(得分:1)

在WM_CREATE中加载位图,在WM_PAINT中使用它。通过SelectObject跟踪返回对象,不要删除仍在HDC中选中的对象。做类似http://www.winprog.org/tutorial/bitmaps.html

的事情