If you really want to see a flicker or change, make m_cWorkDC all black or red and don't call WM_PRINT. From what I can see, unless something is being done to m_cWorkDC between the WM_PRINT and BitBlt call, and the code works, you are copying & pasting the same "stuff".

Edited: Ignore this, we posted at same time and I see you now have results.