// ipframe.cpp : implementation of the CInPlaceFrame class // // This is a part of the Microsoft Foundation Classes C++ library. // Copyright (C) 1992-1998 Microsoft Corporation // All rights reserved. // // This source code is only intended as a supplement to the // Microsoft Foundation Classes Reference and related // electronic documentation provided with the library. // See these sources for detailed information regarding the // Microsoft Foundation Classes product. #include "stdafx.h" #include "scribble.h" #include "ipframe.h" #ifdef _DEBUG #undef THIS_FILE static char BASED_CODE THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CInPlaceFrame IMPLEMENT_DYNCREATE(CInPlaceFrame, COleDocIPFrameWnd) BEGIN_MESSAGE_MAP(CInPlaceFrame, COleDocIPFrameWnd) //{{AFX_MSG_MAP(CInPlaceFrame) ON_WM_CREATE() //}}AFX_MSG_MAP // Global help commands ON_COMMAND(ID_HELP_INDEX, COleDocIPFrameWnd::OnHelpIndex) ON_COMMAND(ID_HELP_USING, COleDocIPFrameWnd::OnHelpUsing) ON_COMMAND(ID_HELP, COleDocIPFrameWnd::OnHelp) ON_COMMAND(ID_DEFAULT_HELP, COleDocIPFrameWnd::OnHelpIndex) ON_COMMAND(ID_CONTEXT_HELP, COleDocIPFrameWnd::OnContextHelp) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // arrays of IDs used to initialize control bars // toolbar buttons - IDs are command buttons static UINT BASED_CODE buttons[] = { // same order as in the bitmap 'itoolbar.bmp' ID_EDIT_CUT, ID_EDIT_COPY, ID_EDIT_PASTE, ID_SEPARATOR, ID_PEN_THICK_OR_THIN, ID_SEPARATOR, ID_APP_ABOUT, ID_CONTEXT_HELP, }; ///////////////////////////////////////////////////////////////////////////// // CInPlaceFrame construction/destruction CInPlaceFrame::CInPlaceFrame() { } CInPlaceFrame::~CInPlaceFrame() { } int CInPlaceFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (COleDocIPFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; // CResizeBar implements in-place resizing. if (!m_wndResizeBar.Create(this)) { TRACE0("Failed to create resize bar\n"); return -1; // fail to create } // By default, it is a good idea to register a drop-target that does // nothing with your frame window. This prevents drops from // "falling through" to a container that supports drag-drop. m_dropTarget.Register(this); return 0; } // OnCreateControlBars is called by the framework to create control bars on the // container application's windows. pWndFrame is the top level frame window of // the container and is always non-NULL. pWndDoc is the doc level frame window // and will be NULL when the container is an SDI application. A server // application can place MFC control bars on either window. BOOL CInPlaceFrame::OnCreateControlBars(CFrameWnd* pWndFrame, CFrameWnd* pWndDoc) { // Create toolbar on client's frame window if (!m_wndToolBar.Create(pWndFrame) || !m_wndToolBar.LoadBitmap(IDR_SCRIBTYPE_SRVR_IP) || !m_wndToolBar.SetButtons(buttons, sizeof(buttons)/sizeof(UINT))) { TRACE0("Failed to create toolbar\n"); return FALSE; } // Set owner to this window, so messages are delivered to correct app m_wndToolBar.SetOwner(this); // TODO: Delete these three lines if you don't want the toolbar to // be dockable m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); pWndFrame->EnableDocking(CBRS_ALIGN_ANY); pWndFrame->DockControlBar(&m_wndToolBar); // TODO: Remove this if you don't want tool tips m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY); return TRUE; } ///////////////////////////////////////////////////////////////////////////// // CInPlaceFrame diagnostics #ifdef _DEBUG void CInPlaceFrame::AssertValid() const { COleDocIPFrameWnd::AssertValid(); } void CInPlaceFrame::Dump(CDumpContext& dc) const { COleDocIPFrameWnd::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CInPlaceFrame commands