Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS Tech Support » CExtNCW hits performance drasticaly Collapse All
Subject Author Date
Offer Har Feb 26, 2009 - 10:01 AM

Dear Support,


After swithcing from CMDIChildWnd to CExtNCW<CMDIChildWnd>, we encountered many performance issues.


We inverstigated them and found that if we use CMDIChildWnd, when creating a new maximized view, OnSize is called 6 time (once with cx=cy0=0, and 5 more times).


But, if we create a view with CExtNCW<CMDIChildWnd> OnSizeis called 14(!) times.


The problem is that inside OnSize we do a lot of computation, assuming that this function is called only when needed, that is not 14 times in a row!


More then this, we see that if we change the title of the child frame, OnSize is called twice, which causes our view to flicker. When the title is change in the normal CMDIChildWnd, this does not happen.(all we do is add * to the title when the data in the view was modified...)


In general, we decided to remove this feature for now, as it seems to be immature. Please let us know when these performance issues are going to be solved, as it affect the overall look & feel of our systems.


If anybody else has encountered these issues, please let the support know... I’m sure we’re not alone.


Regards,


Ron.

Technical Support Mar 4, 2009 - 12:50 PM

There are two interesting for you messages defined in Win32 Platform SDK: WM_ENTERSIZEMOVE and WM_EXITSIZEMOVE. The CExtNCW template class supports them. So you can handle the WM_EXITSIZEMOVE message independently from whether the window non client area is themed by Prof-UIS. These two messages are related to any resizable windows, not only to MDI child frames.

Offer Har Mar 4, 2009 - 1:07 PM

Dear Support,


From my checks, it seems that these messages are sent only when the user resizes and moves the window around, not when a new window is created, or when the mamimize/minimize/restore commands are passed to the window.


My most problematic scenario is the new frame, then I get the 14 WM_SIZE messages, without knowing which one is the last one.


Do you know of any solution foer this problem?


Many thanks,


Ron.

Offer Har Mar 4, 2009 - 12:54 PM

Thanks - will explore these messages.

Technical Support Feb 26, 2009 - 1:29 PM

The standard MDI interface is the most broken part of Windows UI. If you didn’t notice yet, all the Microsoft’s applications released last several years do not use the standard MDI interface. The WM_SIZE message is received several times because Prof-UIS sends it explicitly when the state of MDI interfaces needs to be updated.

Offer Har Mar 4, 2009 - 5:03 AM

Is there any way that I will be able to know when the resizing ended? I don’t want to recalculate 14 times, I need to recalculate once when the view has finally arrived at its final size.


Thanks,


Ron.

Offer Har Feb 26, 2009 - 1:32 PM

Currently, the implementation of Prof-UIS is even worse then the one of microsoft...


We pracicaly cannot use it, as it kills our applications.


Please note that Office 2007 does use MDI, even if they disguise it as multiple SDI, this is the same...


Is there a way to prevent Prof-UIS from sending all those WM_SIZE messages, adn just send one when the frame is about to be displayed?