First of all, you should use a CExtControlBar
-derived class and override the following virtual method in it without invoking the parent class method:
virtual void FloatControlBar(
CPoint ptFloat,
DWORD dwStyle = CBRS_ALIGN_TOP
)
{
ASSERT_VALID( this );
ptFloat;
dwStyle;
}
This will disable switching to the floating state.
Second, the tabbed bar groups are dynamic instances of resizable bars. You should make Prof-UIS using your tabbed bar class which implements the same virtual button. Here is the short article describing how create your tabbed bar and make Prof-UIS using it:
http://www.prof-uis.com/prof-uis/tech-support/faq/control-bars.aspx#how-to-remove-the-close-button-x-from-the-control-barThird, there are two control bar drag-n-dropping algorithms provided by Prof-UIS:
1) Visual Studio .NET like. It’s based on prediction bands. It does not switch resizable bars into the floating state until you drop the bar.
2) Visual Studio 2005/2008/2010 like. It’s based on docking markers (guide diamonds). It switches the bar into the floating state when you start bar drag-n-dropping.
Different UI themes in Prof-UIS use these control bar drag-n-dropping algorithms. The 2nd algorithm is not friendly to the resizable control bars which prevent floating state. So, the fourth and the last task is to make Prof-UIS always using the 1st algorithm. Please invoke the following line of code during your application initialization before creating the resizable bars:
CExtControlBar::g_eResizablePanelDockingType = CExtControlBar::__RESIZABLE_DOCKING_TYPE_STUDIO_2003;