Note: You must be registered in order to post a reply. To register, click here. Registration is FREE!
T O P I C R E V I E W
Posted - 10/21/2019 : 1:41:35 PM I am using version 29.0 with Visual Studio 2015 compiler.
When activating MDI Child frame window via mouse click one would expect that only two child windows get repainted - previously active MDI child, which becomes inactive, and a newly active one.
However, in my case I see that all MDI children get repainted, including those whose activation state hasn't changed. Beside being questionable on the general grounds, when you have a good number of MDI children displayed this causes undesirable effects/delays in painting and working with newly active window as one has to wait for everything else to repaint.
I analysed the code and concluded the following:
The application I am working with is OLE Container
Specifically for OLE Container, change in activation state invokes also the function globalUtils.ForceAdjustLayout
This function will cause immediate and full redraw of all the children.
Since the original MFC code, even in the case of OLE Container application, has no such behavior I am wondering why was this introduced and is there a way to avoid or lessen pretty bad (in my case) effect of redrawing all MDI children as user clicks around activating a single windows.