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 Tech Support » How to keep an CExtToolControlBar at the top? Collapse All
Subject Author Date
Hans Bergmeister Feb 24, 2007 - 5:53 AM

Hello,

our application contains a certain floating CExtToolControlBar bar, that we need to keep at the top of the Z-order of all (!) control bars all the time, i.e. always in the foreground of the application. With plain MFC control bar objects we managed to accomplish this.

After changing to Prof-UIS this does not work anymore. So far we have not found a way to prevent an activating CExtDynamicControlBar bar, which is floating or docked in a floating container, from covering the said CExtToolControlBar bar.

Is there any way to keep this tool bar always in front of all other bars? And if so, how is this done?

Technical Support Feb 24, 2007 - 12:27 PM

You can do this in two ways: by making the floating mini frame window always at the top (cannot always be correct) and by using custom control bar classes which implement the CExtControlBar::_ActivateOnClick() method. This method should the invoke parent class method and then bring to the top what you want to see always over other bars.



Hans Bergmeister Feb 25, 2007 - 3:05 AM

Hello,

I am not sure, whether I understand right or whether I have made our request clear enough.

As far as I understand, _ActivateOnClick() is only called for CExtPageNavigatorWnd and CExtToolControlBar objects. We don’t use CExtPageNavigatorWnd and CExtToolControlBar::_ActivateOnClick() gives us a handle, if the toolbar itself is being clicked. But we need something, that is called, when another (!) bar (mainly a CExtDynamicControlBar) is being clicked to prevent that other bar from displacing our toolbar downward.

Furthermore _ActivateOnClick() does only help, when the toolbar itself is clicked but not, when the NC area of the containing mini frame window is clicked.

Technical Support Feb 26, 2007 - 12:26 PM

We added some improvements to the CExtControlBar and CExtMiniFrameWnd classes. Now the CExtControlBar::_ActivateOnClick() method is invoked correctly for control bars and a new CExtControlBar::_OnNcMiniFrameActivate() virtual method handles NC activation/deactivation for floating mini frame windows including complex palettes with several control bars inside. Please contact via e-mail for the update.