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 General Discussion » original state Collapse All
Subject Author Date
tarou iiyama Jul 10, 2006 - 4:08 AM

Hello

CExtControBar docks to a frame. Or (CExtControBar accompanies other docking bars.)

I carry out FloatControlBar.

From this state.

I want to steep CExtControBar in an original docking state.
(CDockBar, CExtDockBar, CExtDockDynBar, CExtDockDynTabBar)

Will it be possible?

Technical Support Jul 10, 2006 - 10:53 AM

This feature (restoring the previous docked position of a control bar by double clicking its caption when it is floating) is not yet supported for resizable control bars.

tarou iiyama Jul 10, 2006 - 7:03 PM

Hello
Thank you for an answer.

May not you handle it by programming?

(1) The state that CExtControlBar docked.
I save this in a variable.
(2) I carry out FloatControlBar.
(3) I carry out order X by a program. (DockControlBar?????)
(4) CExtControlBar returned to a state of (1).

tarou iiyama Jul 11, 2006 - 2:57 AM

Hello

I examine a state of Control Strip in this.
I can return it to an original state. ??


INT CExtControlBar2::_DockStatus( int & iFloat )
{

if( m_pDockBar->IsKindOf( RUNTIME_CLASS( CDockBar ) ) )
{
iRet=0;
}
if( m_pDockBar->IsKindOf( RUNTIME_CLASS( CExtDockBar ) ) )
{
iRet=1;
}
if( m_pDockBar->IsKindOf( RUNTIME_CLASS( CExtDockDynBar ) ) )
{
iRet=2;
}
if( m_pDockBar->IsKindOf( RUNTIME_CLASS( CExtDockDynTabBar ) ) )
{
iRet=3;
}

return iRet;
}

INT CExtControlBar2::_ScanBar( CExtControlBar *pExtControlBar )
{
int iDocType;
int iFloatType;
iDocType = _DockStatus( iFloatType );
int iRec;
CExtControlBar * pBar;

if ( iDocType == 2 || iDocType == 3 ){
CExtDockDynBar * pCExtDockDynBar =
STATIC_DOWNCAST( CExtDockDynBar , m_pDockBar );
//
for ( iRec = 0 ; iRec < pCExtDockDynBar->m_arrBars.GetSize() ; iRec++ ){
pCExtDockDynBar->m_arrBars.GetAt(iRec);
pBar = (CExtControlBar *)pCExtDockDynBar->m_arrBars[ iRec ];
if ( pBar == pExtControlBar ){
return 1;
}
}
return -1
}


Technical Support Jul 11, 2006 - 8:52 AM

This source code can be used only for determining the current position of a resizable control bar. When you are redocking or floating the bar, the previous position is lost. The outer bars like a toolbar keep markers in place of the docking position when the bar gets floating. The marker is a WORD value in the CDockBar::m_arrBars array. This approach is not acceptable for resizable control bars because, they can be organized into complex layouts with more than four dock bars near frame borders.