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 » Prof-UIS 2.53 -> 2.54 group box painting Collapse All
Subject Author Date
Petr Maar Jul 3, 2006 - 1:53 PM

Hello, everybody.
I recompiled my application to use version 2.54 of Prof-UIS library (instead of 2.53), but in modal dialogs, group boxes (only!) have inconsistent background (they are assigned the highest tab order numbers). Other controls are painted correctly.

You can see my modal and modeless dialogs screenshot here> http://maarp.wz.cz/prof-uis254-group_box.gif

In version 2.53 everything was ok, so is there any special treatment necessary?

Petr

Technical Support Jul 4, 2006 - 10:15 AM

Thank you for reporting the bug. We fixed it. Please open the ExtPaintManager.cpp file and update the CExtPaintManager::PaintGroupBoxFrame() method as follows:

bool CExtPaintManager::PaintGroupBoxFrame(
 CDC & dc,
 const RECT & rcBorder,
 CObject * pHelperSrc,
 LPARAM lParam // = 0L
 )
{
 ASSERT_VALID( this );
 ASSERT( dc.GetSafeHdc() != NULL );
 
CWnd * pWnd =
  DYNAMIC_DOWNCAST(
   CWnd,
   pHelperSrc
   );
 ASSERT( pWnd != NULL );
 ASSERT_VALID( pWnd );
 
 if( ! g_PaintManager.m_UxTheme.IsControlsThemed() )
 {
  CRect rcClient( rcBorder );
  dc.Draw3dRect(
   &rcClient,
   GetColor( COLOR_3DSHADOW, pHelperSrc, lParam ),
   GetColor( COLOR_WINDOW, pHelperSrc, lParam )
   );
  rcClient.DeflateRect(1,1);
  dc.Draw3dRect(
   &rcClient,
   GetColor( COLOR_WINDOW, pHelperSrc, lParam ),
   GetColor( COLOR_3DSHADOW, pHelperSrc, lParam )
   );
 } // if( ! g_PaintManager.m_UxTheme.IsControlsThemed() )
 else
 {
  if( g_PaintManager.m_UxTheme.OpenThemeData( 
    pWnd->GetSafeHwnd(), 
    L"BUTTON" 
    ) != NULL
   )
  {
   VERIFY( 
    g_PaintManager.m_UxTheme.DrawThemeBackground(
     dc.GetSafeHdc(), 
     BP_GROUPBOX, 
     pWnd->IsWindowEnabled() 
      ? GBS_NORMAL 
      : GBS_DISABLED, 
     &rcBorder, 
     &rcBorder
     ) == S_OK
    );
   g_PaintManager.m_UxTheme.CloseThemeData();
  }
 } // else from if( ! g_PaintManager.m_UxTheme.IsControlsThemed() )
 
 return true;
}