You're probably are getting flicker because when you hide the rich text window you draw what's behind the rich text window(the erase background event) and when you show the other rich text you replace the background. What you want to do is hide one rich text window, but not invalide the control's rectangle, and then replace with the other rich text window. It might be better to somehow change the each rich text window's zorder so that one window appears above the other. I don't know enough of the win32 API to help you with the specifics.
I was trying to make my own tab control so I can open several files in my program. I was trying to do this by creating a richedit control for each tab and then hiding and showing those when a user clicks on a different tab. Maybe it isn't the best way, but it seems to work ok, except the edit controls flicker when switching back and forth.