BitBlt only copies what is on screen?

Ok then.. tell me this. If you create an off-screen DC (CreateCompatibleDC, CreateCompatibleBitmap as you said), how do you copy what is on that DC to something on screen? What's that? Speak up! Yes.. it's BitBlt.

However, you are right in the aspect that you cannot BitBlt something that is off-screen from a window.. which is an on-screen DC.

However, if a DC was created sing CreateCompatibleDC, and you know the handle to it, BitBlt works just great.