Do you need to access each pixel individually or just what the user draws? If it is just what is draws and you want it realtime then you can create a shadow bitmap and mirror the drawing logic both on the screen and this bitmap(or whatever device context you wish). If it is only after the user finishes and lets say selects print you could use something like the BitBlt function and copy the drawing area (most likely the client area of the window ) to whatever device context you wish. If you look on MSDN for GDI functions you will find all this information. I am not trying to be vague, I just am not exactly sure what you want to do; maybe if you would rephrase your question I could help more.