128 lines
3.6 KiB
C++
128 lines
3.6 KiB
C++
// IpFrame.cpp : implementation of the CInPlaceFrame class
|
|
//
|
|
// This is a part of the Microsoft Foundation Classes C++ library.
|
|
// Copyright (C) 1992-1997 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 THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CInPlaceFrame
|
|
|
|
IMPLEMENT_DYNCREATE(CInPlaceFrame, COleIPFrameWnd)
|
|
|
|
BEGIN_MESSAGE_MAP(CInPlaceFrame, COleIPFrameWnd)
|
|
//{{AFX_MSG_MAP(CInPlaceFrame)
|
|
ON_WM_CREATE()
|
|
//}}AFX_MSG_MAP
|
|
// Global help commands
|
|
ON_COMMAND(ID_HELP_FINDER, COleIPFrameWnd::OnHelpFinder)
|
|
ON_COMMAND(ID_HELP, COleIPFrameWnd::OnHelp)
|
|
ON_COMMAND(ID_DEFAULT_HELP, COleIPFrameWnd::OnHelpFinder)
|
|
ON_COMMAND(ID_CONTEXT_HELP, COleIPFrameWnd::OnContextHelp)
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CInPlaceFrame construction/destruction
|
|
|
|
CInPlaceFrame::CInPlaceFrame()
|
|
{
|
|
}
|
|
|
|
CInPlaceFrame::~CInPlaceFrame()
|
|
{
|
|
}
|
|
|
|
int CInPlaceFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|
{
|
|
if (COleIPFrameWnd::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)
|
|
{
|
|
UNREFERENCED_PARAMETER(pWndDoc);
|
|
// Set owner to this window, so messages are delivered to correct app
|
|
m_wndToolBar.SetOwner(this);
|
|
|
|
// Create toolbar on client's frame window
|
|
if (!m_wndToolBar.Create(pWndFrame) ||
|
|
!m_wndToolBar.LoadToolBar(IDR_SCRIBBTYPE_SRVR_IP))
|
|
{
|
|
TRACE0("Failed to create toolbar\n");
|
|
return FALSE;
|
|
}
|
|
|
|
// TODO: Remove this if you don't want tool tips
|
|
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
|
|
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
|
|
|
|
// 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);
|
|
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CInPlaceFrame::PreCreateWindow(CREATESTRUCT& cs)
|
|
{
|
|
// TODO: Modify the Window class or styles here by modifying
|
|
// the CREATESTRUCT cs
|
|
|
|
return COleIPFrameWnd::PreCreateWindow(cs);
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CInPlaceFrame diagnostics
|
|
|
|
#ifdef _DEBUG
|
|
void CInPlaceFrame::AssertValid() const
|
|
{
|
|
COleIPFrameWnd::AssertValid();
|
|
}
|
|
|
|
void CInPlaceFrame::Dump(CDumpContext& dc) const
|
|
{
|
|
COleIPFrameWnd::Dump(dc);
|
|
}
|
|
#endif //_DEBUG
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CInPlaceFrame commands
|