BUG: Toolbar Covers Document in MFC ActiveX Document Container

ID: Q216461


The information in this article applies to:
  • The Microsoft Foundation Classes (MFC), used with:
    • Microsoft Visual C++, 32-bit Editions, version 6.0


SYMPTOMS

If you create an MFC AppWizard-generated ActiveX document container, insert a Microsoft Word document or Excel Spreadsheet, and move a toolbar from the top to the left side of the window, without dragging the toolbar through the main window, the toolbar will cover part of the document.


CAUSE

This problem is caused by CFrameWnd::RecalcLayout() not being called when the toolbar is docked on the left side of the frame window.


RESOLUTION

Force CFrameWnd::RecalcLayout() to be called from the OnShowControlBars() function of the COleDocObjectItem-derived class. Perform the following steps to do this:

  1. Add the declaration of OnShowControlBars() to the COleDocObjectItem-derived class, which is declared in the Cntritem.h file:
    
    	virtual BOOL OnShowControlBars(CFrameWnd*, BOOL); 


  2. Implement OnShowControlBars() of the COleDocObjectItem-derived class in theCntritem.cpp file:
    
    BOOL CAXContainerCntrItem::OnShowControlBars(CFrameWnd* pFrameWnd, BOOL bShow)
    {
    	BOOL bResult = COleDocObjectItem::OnShowControlBars(pFrameWnd, bShow);
    	
    	if(pFrameWnd->m_nIdleFlags & CFrameWnd::idleLayout)
    		pFrameWnd->RecalcLayout();
    
    	return bResult;
    
    } 



STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.


MORE INFORMATION

Steps to Reproduce Behavior

  1. Create a new SDI or MDI AppWizard project and select ActiveX document container support.


  2. On the Build menu, click Run.


  3. On the Edit menu, click Insert Object.


  4. Select Microsoft Word Document.


  5. Maximize the MDI Child window (only for MDI applications).


  6. On the View menu, click Normal.


  7. Grab the toolbar right above the document, and drag it to the left docking position without dragging the cursor into the main window.



REFERENCES

(c) Microsoft Corporation 1999, All Rights Reserved. Contributions by Bret Bentzinger, Microsoft Corporation.

Additional query words:

Keywords : kbole kbActiveDocs kbActiveX kbAppToolBar kbContainer kbMFC KbUIDesign kbVC600bug
Version : winnt:6.0
Platform : winnt
Issue type : kbbug


Last Reviewed: June 16, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.