HBITMAP hBitmap; // From File: hBitmap = (HBITMAP)LoadImage(hInstance, "myimage.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION); // From Resource: hBitmap = LoadBitmap(MAKEINTRESOURCE(IDB_MYBMP)); Ok we just loaded the .BMP... BITMAP BMP; GetObject(hBitmap, sizeof(BMP), &BMP); // Here we get the BMP header info. HDC BMPDC = CreateCompatibleDC(NULL); // This will hold the BMP image itself. HDC hDC = GetDC(hWnd); SelectObject(BMPDC, hBitmap); // Put the image into the DC. BitBlt(hDC, X, y, BMP.bmWidth, BMP.bmHeight, BMPDC, 0, 0, SRCCOPY); // Finally, Draw it :) ReleaseDC(hDC, hWnd); // Don't forget to clean up! DeleteDC(BMPDC); DeleteObject(hBitmap);