|
|
|
|
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 |
|
Luc Dion
|
Sep 25, 2006 - 8:40 AM
|
Hi, Iaˆ™m using Prof-UIS 2.60, and when the application is maximized it covers the entire screen, including the Windows Taskbar. The problem can be reproduced using the AviFrames-u.exe samples.
Steps: 1- Maximize the window. 2- Minimize the window. 3- Restore the window using the taskbar. 4- Now the application is covering the entire screen (including the taskbar).
Note: This behaviour is only present for application using Office 2007 themes, for example, this cannot be reproduced with the ResizableChildSheet.exe sample.
Thanks for your help, Luc Dion
|
|
Paul Cowan
|
Jul 12, 2007 - 2:22 PM
|
This is still happening in v2.70 of the library.
|
|
Luc Dion
|
Jul 13, 2007 - 6:38 AM
|
Thanks, now it works fine!
|
|
Technical Support
|
Sep 27, 2006 - 11:54 AM
|
Thank you for reporting the bug. Please update the source code of the CExtNcFrameImpl::NcFrameImpl_PostWindowProc() method to fix this bug: void CExtNcFrameImpl::NcFrameImpl_PostWindowProc( LRESULT & lResult, UINT message, WPARAM wParam, LPARAM lParam )
{
lResult;
wParam;
lParam;
switch( message )
{
case WM_NCLBUTTONDBLCLK:
if( m_bNcFrameImpl_RestoreBorder )
{
m_bNcFrameImpl_RestoreBorder = false;
CWnd * pWndFrameImpl = NcFrameImpl_GetFrameWindow();
pWndFrameImpl->ModifyStyle( WS_BORDER, 0 );
}
break;
case WM_WINDOWPOSCHANGING:
{
LPWINDOWPOS lpWindowPos =
reinterpret_cast < LPWINDOWPOS > (lParam);
ASSERT( lpWindowPos != NULL );
m_bNcFrameImpl_DelatayedFrameRecalc =
( ( lpWindowPos->flags & SWP_FRAMECHANGED ) == 0 )
? true : false;
NcFrameImpl_SetupRgn( (WINDOWPOS *)lParam );
}
break;
case WM_WINDOWPOSCHANGED:
m_bNcFrameImpl_DelatayedFrameRecalc = false;
break;
case WM_GETMINMAXINFO:
if( NcFrameImpl_IsSupported() )
{
CWnd * pWndFrameImpl = (CWnd *)NcFrameImpl_GetFrameWindow();
ASSERT_VALID( pWndFrameImpl );
CExtPaintManager::monitor_parms_t _mp;
CExtPaintManager::stat_GetMonitorParms( _mp, pWndFrameImpl );
LPMINMAXINFO pMMI = (LPMINMAXINFO)lParam;
CSize _maxSize = _mp.m_rcWorkArea.Size();
if( _mp.m_rcMonitor == _mp.m_rcWorkArea )
{
if( pMMI->ptMaxPosition.x < _mp.m_rcWorkArea.left )
pMMI->ptMaxPosition.x = _mp.m_rcWorkArea.left;
if( pMMI->ptMaxPosition.y < _mp.m_rcWorkArea.top )
pMMI->ptMaxPosition.y = _mp.m_rcWorkArea.top;
_maxSize.cy -= 1;
}
if( NcFrameImpl_IsForceEmpty() )
{
if( ! NcFrameImpl_IsForceEmptyNcBorderEmpty() )
{
CRect rc = NcFrameImpl_GetForceEmptyNcBorder();
_maxSize.cx += rc.left + rc.right;
_maxSize.cy += rc.top + rc.bottom;
}
}
else
{
CRect rcNcBorders, rcThemePadding;
NcFrameImpl_GetPM()->NcFrame_GetMetrics(
rcNcBorders,
rcThemePadding,
pWndFrameImpl
);
_maxSize.cx += rcNcBorders.left + rcNcBorders.right;
_maxSize.cy += rcNcBorders.top + rcNcBorders.bottom;
}
if( pMMI->ptMaxSize.x > _maxSize.cx )
pMMI->ptMaxSize.x = _maxSize.cx;
if( pMMI->ptMaxSize.y > _maxSize.cy )
pMMI->ptMaxSize.y = _maxSize.cy;
}
break;
}
}
|
|