Professional UI Solutions
Site Map   /  Register


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 » Docking Framework capabilities Collapse All
Subject Author Date
BGC Dev Sep 12, 2008 - 7:36 AM


I would like to know if the docking framework allows a Floating window to be "separated" from the mainframe in such a way that when we minimize the mainframe the floating window doesnt minimize with it.

In other words is it possible for floated windows to have their own minimize/maximize and taskbar buttons while keeping their docking capabilities.

If the framework doesnt allow this, could you suggest the best way of achieving this using your library? (i.e. which function/class to override etc...)

Thank you in advance.


BGC Dev Sep 16, 2008 - 2:22 AM

We will have a look at implementing this solution.

Thank you, this was much helpfull.


Technical Support Sep 12, 2008 - 12:49 PM

Unfortunately this feature is not supported because it’s very specific and, we guess, not present anywhere. It’s possible to insert your custom buttons into resizable control bar’s captions. The FixedSizePanels sample applications has two resizable control bars with Internet Explorer controls inside. These bars have two custom coded caption buttons for back/forward navigation in the web browser window. You can implement one new button which will emulate switching of your bar into detached state. If the button is pressed, then you should hide the resizable control bar using the CFrameWnd::ShowControlBar() method (or using the CExtControlBar::AutoHideModeSet() method if the bar’s CExtControlBar::AutoHideModeGet() method returns true value). The control bar become hidden. Then you can set bar’s CExtControlBar::m_bAppearInDockSiteControlBarPopupMenu property to false value. This will hide the menu command items displaying this bar from all the built-in Prof-UIS popup menus displayed over main frame window areas. Now the bar is completely hidden. Next step is to create completely new CFrameWnd-based window on the desktop and move the bar’s child window into this newly created on the desktop frame window. This can be done using the CWnd::SetParent() method or SetParent() Win32 API. You should also set dialog control identifier of bar’s child window to the AFX_IDW_PANE_FIRST value. This will make the new frame window resizing its new child window automatically. Of course, this new frame window can also contain any local control bars inside it. That’s all. The bar is switched into detached state on the desktop. But you will probably need to implement backward state switching into control bar based re-dockable state. Backward state switching is based on changing parent to control bar window and destroying detached frame window. For instance, you can modify system menu of detached frame window and insert some your command into it which will change state to re-dockable. Of course, you will need to keep list, map or array of pointers to the data which will describe detached/re-dockable state of your resizable control bars.