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 » Vista Aero DWM display problems with ProfUIS container. Collapse All
Subject Author Date
marc uchida Jul 24, 2008 - 3:39 PM

I have a Vista Aero problem with ProfUIS containers.


I am developing an app that has custom controls in a window that behaves just fine under XP and under Vista with  non-Aero themes.  When

Aero/DWM is on however, the dialog window becomes opaque in parts of the dialog (random spots, not the whole dialog) and the controls therein will often vanish whenever a RedrawWindow(&rect, NULL, RDW_INVALIDATE |RDW_ALLCHILDREN); is called.


I have used SetWindowLong() and SetLayeredWindowAttributes() to turn off any transparency attributes or opacity (in case it was inheriting these from somewhere) to no effect.  Invalidating the controls  or the window programatically (for a repaint) does not have any effect, in fact it seems to be what

triggers the controls from being lost from sight. I’ve done every combination of UpdateWindow, Invalidate, RedrawWindow, etc. to no avail, in fact the more I call Invalidate the worse it gets sometimes.  Resizing the window manually at runtime forces the whole shebang to be redrawn correctly however!

My hardware should not be the problem as it is fast (high Vista rating 5.9 for graphics Aero desktop performance).  It feels like a timing problem, or an order of Paint problem.


My problematic Dialog has a picture control in it.  I set a tabbed container in the picture control.  This tabbed container is a CExtTabPageContainerFlatWnd.  The dialog is aCExtResizableDialog. It is within the CExtTabPageContainerFlatWnd container that I am having all my problems.  I wasn’t sure where the problem might be rooted until I  converted theCExtResizableDialog back to a plain CDialog.  The result was that the opacity problem went away.  My controls still vanish in the tabbed container though, when they are invalidated.


Any ideas on what might be causing this grief?  Or is there a way to deactivate DWM in a CExtResizableDialog only?? (not the whole desktop, which I already know how to do and it is not appropriate for a fix at this time).

thanks


p.s. thought I should mention that, unfortunately,  to complicate matters,  my controls in the tabbed container are custom controls.

Technical Support Jul 25, 2008 - 11:46 AM

Please send us some screen shots demonstrating the painting problem. Are you using any DWM functions during your dialog window initialization?