This article illustrates how to make an OLE Container's
toolbar visible when the user is editing an inplace active object. The
technique makes both the container and the server toolbars visible during
inplace editing.
During inplace activation, MFC shows and hides control bars
that have the CBRS_HIDE_INPLACE style used in the
COleClientItem::OnShowControlBars() function, which can be found in the MFC
source code (Olecli2.cpp).
MFC automatically adds the
CBRS_HIDE_INPLACE style to toolbars that are created with the ID
AFX_IDW_TOOLBAR, which is the default value for the toolbar created by
AppWizard in the MainFrame window (m_wndToolBar). You can see this in the
CToolBar::Create() function in the MFC source code (Bartool.cpp). To remove the
CBRS_HIDE_INPLACE style from m_wndToolBar, add the following line of code to
the CMainFrame::OnCreate function after m_wndToolBar is created:
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle()
^ CBRS_HIDE_INPLACE);
The SetBarStyle() call removes the CBRS_HIDE_INPLACE style by
performing a bitwise XOR operation with the existing style for the toolbar.
NOTE: The resulting behavior depends on the server's implementation.
For example, Word 6.0 always puts its toolbar at position (0,0). In this case,
Word's toolbar will be placed in front of the container's toolbar. Most servers
place their toolbar beneath the container's toolbar as expected.