Sounds like you are talking about the difference between a "shallow copy" and a "deep copy", or in other words, a copy of the handle or a copy of what the handle represents.

If your application is single threaded then all your classes could reference a single HBITMAP instance for performing BitBlt()'s. However, if you do this with multiple memory DC instances, then be sure de-select the HBITMAP out of the memory DC before selecting it into another memory DC. This may be why only one of your classes are successfully drawing.

gg