|
|
|
|
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 |
|
Stephane Leger
|
Feb 2, 2010 - 1:09 PM
|
Hi Team,<o:p></o:p> I sent you mails (first January 15) about a refresh problem when docking Dynamic bar in my application. This problem appeared with version 2.87. In the mail a sent you the repro steps with screen shots using your SDI_DynamicBars sample that has the same problem. Could you confirm the problem? Do you think you can have a solution soon?<o:p></o:p> email Subject: Problem Prof-uis 2.87 Docking refresh SDI DynamicBar.<o:p></o:p> Thank you.<o:p></o:p> Stephane.<o:p></o:p>
|
|
Technical Support
|
Feb 18, 2010 - 1:54 PM
|
It looks like we fixed this issue. Please update the source code for the following method:
// dock control bar relatively to other control bar using
// space percent specification (extended version)
bool CExtControlBar::DockControlBarLTRB(
int nPercentToOccupy, // greater than zero and less than one hundred
CExtControlBar * pBarTarget,
UINT nDockBarID, // = AFX_IDW_DOCKBAR_BOTTOM
bool bRecalcLayout // = true
)
{
ASSERT_VALID( this );
ASSERT_KINDOF( CExtControlBar, this );
ASSERT_VALID( pBarTarget );
ASSERT_KINDOF( CExtControlBar, pBarTarget );
ASSERT_DOCKBAR_DLGCTRLID_DOCKED( nDockBarID );
ASSERT_VALID( pBarTarget->m_pDockBar );
ASSERT_KINDOF( CDockBar, pBarTarget->m_pDockBar );
ASSERT( ! IsFixedMode() );
ASSERT( ! pBarTarget->IsFixedMode() );
ASSERT( 0 < nPercentToOccupy && nPercentToOccupy < 100 );
#ifdef _DEBUG
if( m_pDockBar != NULL )
{
ASSERT_VALID( m_pDockBar );
ASSERT_KINDOF( CDockBar, m_pDockBar );
}
#endif // _DEBUG
CFrameWnd * pParentFrame = GetParentFrame();
CFrameWnd * pDockSite = m_pDockSite;
#if (!defined __EXT_MFC_NO_DOCK_MARKERS)
if( pParentFrame != NULL
&& pParentFrame->IsKindOf( RUNTIME_CLASS(CExtMiniDockFrameWnd) )
&& _DraggingGetBar() == this
&& INT(OnQueryDockingType()) >= INT(__RESIZABLE_DOCKING_TYPE_STUDIO_2005)
)
pParentFrame->ShowWindow( SW_HIDE );
#endif // (!defined __EXT_MFC_NO_DOCK_MARKERS)
#if (!defined __EXT_MFC_NO_TAB_CONTROLBARS)
CExtDynTabControlBar * pTargetTabBar =
pBarTarget->_GetNearestTabbedContainer();
if( pTargetTabBar != NULL )
{
ASSERT_VALID( pTargetTabBar );
pBarTarget = pTargetTabBar;
ASSERT_VALID( pBarTarget->m_pDockBar );
ASSERT_KINDOF( CDockBar, pBarTarget->m_pDockBar );
ASSERT( ! pBarTarget->IsFixedMode() );
} // if( pTargetTabBar != NULL )
#endif // (!defined __EXT_MFC_NO_TAB_CONTROLBARS)
bool bRecalcDockSite = true;
pParentFrame = pBarTarget->GetParentFrame();
ASSERT_VALID( pParentFrame );
if( pParentFrame != pBarTarget->m_pDockSite
&& (m_pDockSite != NULL && pParentFrame != m_pDockSite )
)
bRecalcDockSite = false;
HWND hWndSrcFrame = NULL;
if( m_pDockSite != NULL )
{
hWndSrcFrame = GetParentFrame()->GetSafeHwnd();
if( hWndSrcFrame == pBarTarget->m_pDockSite->GetSafeHwnd() )
hWndSrcFrame = NULL;
} // if( m_pDockSite != NULL )
pBarTarget->DelayShow( TRUE );
DelayShow( TRUE );
HWND hWndBarTarget = pBarTarget->GetSafeHwnd();
_DisplayingSet( false );
pBarTarget->_DraggingDoDeepHalfSplit(
this,
nDockBarID,
nPercentToOccupy
);
_DisplayingSet( false );
bRecalcLayout = bRecalcDockSite = true;
if( bRecalcLayout )
{
ASSERT_VALID( pParentFrame );
pParentFrame->RecalcLayout();
if( hWndSrcFrame != NULL && ::IsWindow(hWndSrcFrame) )
{
CWnd * pWnd = CWnd::FromHandlePermanent( hWndSrcFrame );
if( pWnd != NULL )
{
ASSERT_VALID( pWnd );
CFrameWnd * pFrame =
DYNAMIC_DOWNCAST( CFrameWnd, pWnd );
if( pFrame != NULL )
pFrame->RecalcLayout();
} // if( pWnd != NULL )
} // if( hWndSrcFrame != NULL && ::IsWindow(hWndSrcFrame) )
if( bRecalcDockSite
&& ::IsWindow( hWndBarTarget )
)
pBarTarget->m_pDockSite->RecalcLayout();
} // if( bRecalcLayout )
CExtControlBar::stat_AdjustOccCompatibilityTree( pDockSite );
return true;
}
|
|
Stephane Leger
|
Feb 11, 2010 - 10:13 AM
|
No the problem still exist if you follows the steps in my mail the bar disappear each time you dock it when it come from the TabbedDocument! Thanks Stephane.
|
|
Technical Support
|
Feb 8, 2010 - 12:58 PM
|
The nested docked control bar layout problem was fixed in Prof-UIS 2.88.
|
|
Stephane Leger
|
Feb 5, 2010 - 8:42 AM
|
Hi Team, I just send it. Hope you will get it Thanks. Stephane.
|
|
Technical Support
|
Feb 3, 2010 - 10:41 AM
|
|
|