Winapi LoadBitmap() is not loading images from my resources

4.8k views Asked by At

In my .rc file I have add line:

IMG BITMAP "myIMG.bmp" //add to resources

Prototype in .cpp file:

HBITMAP     Image;

after ShowWindow() I load it in to memory with:

Image=LoadBitmap(hInstance,"IMG");

On WM_CREATE: I load it on to the screen and clear it out:

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);

Thanks to @BeneGal question (founded here) I have created a MB that tells if the img is not loaded:

if(Image == NULL) {
MessageBox(NULL, "NO IMAGE LOADED!", "Error!",  MB_ICONEXCLAMATION | MB_OK);
}

When I paste the above code right after ShowWindow() the MB don't appear, when I paste it on WM_CREATE: it appears. Don't know why.

edit: Well actually I forgot to tell that image does not appear on my window and that is the main problem.

1

There are 1 answers

1
ColdCat On BEST ANSWER

Load your bitmap in WM_CREATE use it in WM_PAINT. Keep track of return objects by SelectObject and don't delete object which are still selected in HDC. Do something like that http://www.winprog.org/tutorial/bitmaps.html