We have already fixed this bug. Please update the source code for the CExtPaintManagerOffice2007_Impl::NcFrame_GetRects()
method in the ../Prof-UIS/Src/ExtPaintManager.cpp file:
void CExtPaintManagerOffice2007_Impl::NcFrame_GetRects(
CExtCmdIcon * pIcon,
__EXT_MFC_SAFE_LPCTSTR strCaption,
UINT nDrawTextAlignFlags,
RECT & rcIcon,
RECT & rcText,
RECT & rcHelp,
RECT & rcMinimize,
RECT & rcMaximizeRestore,
RECT & rcClose,
const CWnd * pWnd,
LPARAM lParam // = 0L
) const
{
ASSERT_VALID( this );
strCaption;
nDrawTextAlignFlags;
LPMINMAXINFO pMinMaxInfo = NULL;
::SetRectEmpty( &rcIcon );
::SetRectEmpty( &rcText );
::SetRectEmpty( &rcHelp );
::SetRectEmpty( &rcMinimize );
::SetRectEmpty( &rcMaximizeRestore );
::SetRectEmpty( &rcClose );
ASSERT( NcFrame_IsSupported( pWnd ) );
DWORD dwWndStyle = pWnd->GetStyle();
if( (dwWndStyle&WS_CAPTION) == 0 )
return;
//DWORD dwWndStyleEx = pWnd->GetExStyle();
CRect rcNcBorders, rcThemePadding;
NcFrame_GetMetrics(
rcNcBorders,
rcThemePadding,
pWnd,
lParam
);
CRect rcCaption =
NcFrame_GetHtRect(
HTCAPTION,
false,
true,
true,
pIcon,
pWnd,
pMinMaxInfo
);
CRect rc = rcCaption;
::CopyRect( &rcText, &rcCaption );
bool bZoomed = pWnd->IsZoomed()? true : false;
if( (dwWndStyle&WS_SYSMENU) != 0 )
{
//LPCTSTR strFrameActive = _T("Active");
//const CExtSkinGlyph & glyphClose = m_Skin[_T("Button")][_T("FrameNcButton")][_T("Close")][strFrameActive].Glyph(_T("Normal"));
CSize _sizeScClose(m_nCaptionHeightActive-2,m_nCaptionHeightActive-3); // = glyphClose.GetSize();
CRect _rcOffsetScClose(0,0,0,0); // = glyphClose.GetOffset();
rc.right -= bZoomed ? rcThemePadding.right : 1;
rc.right -= _rcOffsetScClose.right;
rc.left = rc.right - _sizeScClose.cx;
rc.top = rcCaption.top + _rcOffsetScClose.top + ( bZoomed ? _rcOffsetScClose.bottom : 0 );
rc.bottom = rc.top + _sizeScClose.cy;
::CopyRect( &rcClose, &rc );
rc.OffsetRect( -_sizeScClose.cx, 0 );
rcText.right = rcCaption.right - __EXT_MFC_SKINNED_CAPTION_TEXT_GAP;
if( (dwWndStyle&WS_MAXIMIZEBOX) != 0 )
{
//const CExtSkinGlyph & glyphMaximize = m_Skin[_T("Button")][_T("FrameNcButton")][_T("Maximize")][strFrameActive].Glyph(_T("Normal"));
CSize _sizeScMaximize(m_nCaptionHeightActive-2,m_nCaptionHeightActive-3); // = glyphMaximize.GetSize();
CRect _rcOffsetScMaximize(0,0,0,0); // = glyphMaximize.GetOffset();
rc.right -= _rcOffsetScMaximize.right;
rc.top = rcCaption.top + _rcOffsetScMaximize.top + ( bZoomed ? _rcOffsetScMaximize.bottom : 0 );
rc.left = rc.right - _sizeScMaximize.cx;
rc.bottom = rc.top + _sizeScMaximize.cy;
::CopyRect( &rcMaximizeRestore, &rc );
rc.OffsetRect( -_sizeScMaximize.cx, 0 );
rcText.right = rcMaximizeRestore.left - __EXT_MFC_SKINNED_CAPTION_TEXT_GAP;
} // if( (dwWndStyle&WS_MAXIMIZEBOX) != 0 )
if( (dwWndStyle&WS_MINIMIZEBOX) != 0 )
{
//const CExtSkinGlyph & glyphMinimize = m_Skin[_T("Button")][_T("FrameNcButton")][_T("Minimize")][strFrameActive].Glyph(_T("Normal"));
CSize _sizeScMinimize(m_nCaptionHeightActive-2,m_nCaptionHeightActive-3); // = glyphMinimize.GetSize();
CRect _rcOffsetScMinimize(0,0,0,0); // = glyphMinimize.GetOffset();
rc.right -= _rcOffsetScMinimize.right;
rc.top = rcCaption.top + _rcOffsetScMinimize.top + ( bZoomed ? _rcOffsetScMinimize.bottom : 0 );
rc.left = rc.right - _sizeScMinimize.cx;
rc.bottom = rc.top + _sizeScMinimize.cy;
::CopyRect( &rcMinimize, &rc );
rc.OffsetRect( -_sizeScMinimize.cx, 0 );
rcText.right = rcMinimize.left - __EXT_MFC_SKINNED_CAPTION_TEXT_GAP;
} // if( (dwWndStyle&WS_MINIMIZEBOX) != 0 )
// if( (dwWndStyleEx&WS_EX_CONTEXTHELP) != 0 )
// {
// //const CExtSkinGlyph & glyphHelp = m_Skin[_T("Button")][_T("FrameNcButton")][_T("Help")][strFrameActive].Glyph(_T("Normal"));
// CSize _sizeScHelp(m_nCaptionHeightActive-2,m_nCaptionHeightActive-3); // = glyphHelp.GetSize();
// CRect _rcOffsetScHelp(0,0,0,0); // = glyphHelp.GetOffset();
// rc.right -= _rcOffsetScHelp.right;
// rc.top = rcCaption.top + _rcOffsetScHelp.top + ( bZoomed ? _rcOffsetScHelp.bottom : 0 );
// rc.left = rc.right - _sizeScHelp.cx;
// rc.bottom = rc.top + _sizeScHelp.cy;
// ::CopyRect( &rcHelp, &rc );
// rcText.right = rcHelp.left - __EXT_MFC_SKINNED_CAPTION_TEXT_GAP;
// } // if( (dwWndStyleEx&WS_EX_CONTEXTHELP) != 0 )
if( pIcon != NULL
&& (! pIcon->IsEmpty() )
)
{
CSize _sizeIcon = pIcon->GetSize();
if( _sizeIcon.cx > 0 && _sizeIcon.cy > 0 )
{
int x = rcCaption.left + (bZoomed ? rcNcBorders.left : 0 );
int y = rcCaption.top + ( rcCaption.Height() - _sizeIcon.cy ) / 2;
::SetRect(
&rcIcon,
x,
y,
x + _sizeIcon.cx,
y + _sizeIcon.cy
);
rcText.left = rcIcon.right + __EXT_MFC_SKINNED_CAPTION_TEXT_GAP;
} // if( _sizeIcon.cx > 0 && _sizeIcon.cy > 0 )
else
rcText.left += __EXT_MFC_SKINNED_CAPTION_TEXT_GAP;
} // if( pIcon != NULL ...
else
rcText.left += __EXT_MFC_SKINNED_CAPTION_TEXT_GAP + (bZoomed ? rcNcBorders.left : 0 );
} // if( (dwWndStyle&WS_SYSMENU) != 0 )
else
{
rcText.left += __EXT_MFC_SKINNED_CAPTION_TEXT_GAP + (bZoomed ? rcNcBorders.left : 0 );
rcText.right -= __EXT_MFC_SKINNED_CAPTION_TEXT_GAP;
}
}