I agree, it makes absolutely no sense. Granted, I believe I just found where/why it is not working the way you'd expect it to;
In the initial function which loads the image, and sets up the values, this is what I originally had:
HDC hdcMem = CreateCompatibleDC(hdc);
this->hdcMem = hdcMem;
HBITMAP image = (HBITMAP)LoadImage(NULL, file, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
this->image = image;
Apparently, you cannot copy the values straight over like that. I was under the impression (the debugger showed the same values) it was working fine.
In the initial loadImage() function, I believe what I'm going to do now is absolve all locally defined functions, and simply use the class' innate ones.
In the destructor of the class, I should be (for safety sake, and not relying on the operating system) calling the DeleteObject/DeleteDC, correct?
Thank you again for the help, as always (through-out the years).