I have tried several methods, but problems always exist. Sometimes the sub-window didn't refresh and sometimes the sub-window will keep blink. This is a sample project that i have written http://rapidshare.com/files/283950611/TestProject.7z.html
My method to implement that is: Put a scroll bar on the top of sub-window, whenever the scroll bar was dragged, the sub-window would be moved as well.
And every dialog is inherited from CDialogBase, All the drawing is done in this class, Drawer.h is a helper for drawing. Only when the DC that user assigned is dirty, then system will redraw the window, it is used for accelerating the painting.