That is a kind of architecture problem on the application. You should implement the Draw method so it only updates the part of application view which is needed to update.
E.g. if there is 3 text objects and text 1 is changes you should not ask system to update whole screen, instead the part where text object 1 lies. This is not easy task but if you are patient you can do that.
So define a class which contains member for the text and when you change that text it will calculate the rect what is needed to display that rect. Then ask framework to update only that part of view rect.
Inside Draw method you should detect area of text1 is asked to draw and somethig like this is needed:
...hope this helps but sure there is lot issues to be considered.
void CMyAboutControl::Draw(const TRect& aRect) const
CWindowGc& gc = SystemGc();
// Test is text 1 is asked to draw...Intersects method from SDK
if ( aRect.Intersects( text_object1->imageRect() ) )
// define which part of area to re-draw
imageRect.Intersection( aRect );
// background image
gc.UseBrushPattern( iImageBitmap );
gc.SetPenStyle( CGraphicsContext::ENullPen );
gc.SetBrushStyle( CGraphicsContext::EPatternedBrush );
// Draw bitmap to the are where text lies
gc.DrawRect( imageRect );
// draw new text above bitmap
// And so on all object throw...