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 » Flickering of controls inside dialog Collapse All
Subject Author Date
Carsten Pedersen Oct 13, 2009 - 4:44 AM

Hi,


We have a ProfUIS-skinned dialog which has some flickering problems. On a Tab (CExtTabPageContainerWnd) we have an empty dialog, which I runtime fill with bars that are implemented as child dialogs(CExtResizableDialog).


Whenever I call Invalidate(FALSE) on the child dialogit first removes the dialog, repaints the skinned background and then paints the bar. This results in flickering whenever it gets updated.

We want to call Invalidate with the FALSE parameter, because we don’t want the dialog to be erased, just to be repainted on top of itself.


However, it still gets erased. Is this something that ProfUIS overrides, and can we do anything to avoid this erasing behavior?


Thanks in advance

Carsten Pedersen Oct 29, 2009 - 1:15 AM

Hi again,


I have sent you a reply to the corrected program you sent me.


Best regards,

Carsten Pedersen

Technical Support Oct 30, 2009 - 2:32 PM

We received your e-mail and replied it.

Carsten Pedersen Oct 27, 2009 - 2:38 AM

I have just sent you a test program.


 


Carsten

Technical Support Oct 27, 2009 - 2:26 PM

We received your e-mail and replied it with the fixed project in attachment.

Carsten Pedersen Oct 26, 2009 - 9:39 AM

It is a rather complex application, and stipping it down is time consuming.


However, I hope that I can do it one of these days. Thanks in advance.


 


Carsten

Technical Support Oct 14, 2009 - 11:52 AM

The UI design is OK. We still believe there is something wrong with window styles or z-orders of dialog controls. Could you please create a smallest possible stripped version of your project containing UI code only and send it to us?

Carsten Pedersen Oct 14, 2009 - 6:43 AM

I tried to set WS_CLIPCHILDREN|WS_CLIPSIBLINGS to the main dialog on the tab page as well as the child dialogs laid out on the main dialogs. This resulted in the child dialogs not being updated at all. When changing to another tab and back again it was obvious that the child dialogs weren’t updated.


In order for me to clarify the setup, I’ll just shortly describe the dialog hierarchy:


- On top level we have the Tab container (CExtTabPageContainerWnd)

- On the first tab page I have an empty dialog (A). The empty dialog is created runtime as a child dialog.

- Inside the (A) dialog, I have created multiple smaller dialogs, that work as 2D bar charts. Each bar is created runtime as child dialogs and laid out on the (A) dialog.


On every update, the 2D bar charts are drawn, but naturally not the whole frame is used to draw the bar, it depends on the height of the bar. Thus, the ProfUIS skinned background should be drawn on the area where bars aren’t drawn, as if the dialog was transparent.


Can this be done how you describe? It doesn’t seem to have the wanted effect, what you suggest. Is it necessary to implement double buffering for this to work?

Technical Support Oct 13, 2009 - 10:40 AM

Please check the following:

1) The tab page container control is created with the WS_CLIPCHILDREN|WS_CLIPSIBLINGS styles.

2) The dialog template resources have both clip children and clip siblings styles set on.

3) The z-indices of controls such as group boxes and static frames on each dialog template resource are greater than z-indices of all the controls inside them.