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.
Subject |
Author |
Date |
|
Sujang Lee
|
Jun 12, 2006 - 5:48 PM
|
I appied Office 2007 theme to project(Dialog based Project) successfully.
I enable minimize button and disable maxmize button in the Dialog proferties.
When I execute program, Close button is only displayed. Minimize button wasn’t displayed.
Please, help me....
|
|
Technical Support
|
Jun 13, 2006 - 11:15 AM
|
Thank you for reporting the 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,
LPMINMAXINFO pMinMaxInfo,
LPARAM lParam
) const
{
ASSERT_VALID( this );
strCaption;
nDrawTextAlignFlags;
::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;
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 )
{
CSize _sizeScClose(m_nCaptionHeightActive-2,m_nCaptionHeightActive-3);
CRect _rcOffsetScClose(0,0,0,0);
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 )
{
CSize _sizeScMaximize(m_nCaptionHeightActive-2,m_nCaptionHeightActive-3);
CRect _rcOffsetScMaximize(0,0,0,0);
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_MINIMIZEBOX) != 0 )
{
CSize _sizeScMinimize(m_nCaptionHeightActive-2,m_nCaptionHeightActive-3);
CRect _rcOffsetScMinimize(0,0,0,0);
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( 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;
}
else
rcText.left += __EXT_MFC_SKINNED_CAPTION_TEXT_GAP;
}
else
rcText.left += __EXT_MFC_SKINNED_CAPTION_TEXT_GAP + (bZoomed ? rcNcBorders.left : 0 );
}
else
{
rcText.left += __EXT_MFC_SKINNED_CAPTION_TEXT_GAP + (bZoomed ? rcNcBorders.left : 0 );
rcText.right -= __EXT_MFC_SKINNED_CAPTION_TEXT_GAP;
}
}
|
|
Sujang Lee
|
Jun 13, 2006 - 5:41 PM
|
There is error.
CRect rcCaption = NcFrame_GetHtRect( HTCAPTION, false, true, true, pIcon, pWnd, pMinMaxInfo <--------- error point );
\Src\ExtPaintManager.cpp(36675) : error C2664: ’NcFrame_GetHtRect’ : cannot convert parameter 7 from ’struct tagMINMAXINFO *’ to ’long’
Please.. I need more help....
|
|
Technical Support
|
Jun 14, 2006 - 9:01 AM
|
We are sorry for this inconvenience. You should not have any problems with this version of code: 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
) const
{
ASSERT_VALID( this );
strCaption;
nDrawTextAlignFlags;
::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;
CRect rcNcBorders, rcThemePadding;
NcFrame_GetMetrics(
rcNcBorders,
rcThemePadding,
pWnd,
lParam
);
CRect rcCaption =
NcFrame_GetHtRect(
HTCAPTION,
false,
true,
true,
pIcon,
pWnd
);
CRect rc = rcCaption;
::CopyRect( &rcText, &rcCaption );
bool bZoomed = pWnd->IsZoomed()? true : false;
if( (dwWndStyle&WS_SYSMENU) != 0 )
{
CSize _sizeScClose(m_nCaptionHeightActive-2,m_nCaptionHeightActive-3);
CRect _rcOffsetScClose(0,0,0,0);
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 )
{
CSize _sizeScMaximize(m_nCaptionHeightActive-2,m_nCaptionHeightActive-3);
CRect _rcOffsetScMaximize(0,0,0,0);
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_MINIMIZEBOX) != 0 )
{
CSize _sizeScMinimize(m_nCaptionHeightActive-2,m_nCaptionHeightActive-3);
CRect _rcOffsetScMinimize(0,0,0,0);
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( 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;
}
else
rcText.left += __EXT_MFC_SKINNED_CAPTION_TEXT_GAP;
}
else
rcText.left += __EXT_MFC_SKINNED_CAPTION_TEXT_GAP + (bZoomed ? rcNcBorders.left : 0 );
}
else
{
rcText.left += __EXT_MFC_SKINNED_CAPTION_TEXT_GAP + (bZoomed ? rcNcBorders.left : 0 );
rcText.right -= __EXT_MFC_SKINNED_CAPTION_TEXT_GAP;
}
}
|
|