⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cntritem.cpp

📁 《vc++技术内墓》 附带源码
💻 CPP
字号:
// CntrItem.cpp : implementation of the CEx32bCntrItem class//#include "stdafx.h"#include "ex32b.h"#include "ex32bDoc.h"#include "ex32bView.h"#include "CntrItem.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// CEx32bCntrItem implementationIMPLEMENT_SERIAL(CEx32bCntrItem, COleClientItem, 0)CEx32bCntrItem::CEx32bCntrItem(CEx32bDoc* pContainer)	: COleClientItem(pContainer){	// TODO: add one-time construction code here	}CEx32bCntrItem::~CEx32bCntrItem(){	// TODO: add cleanup code here	}void CEx32bCntrItem::OnChange(OLE_NOTIFICATION nCode, DWORD dwParam){	ASSERT_VALID(this);	COleClientItem::OnChange(nCode, dwParam);	// When an item is being edited (either in-place or fully open)	//  it sends OnChange notifications for changes in the state of the	//  item or visual appearance of its content.	// TODO: invalidate the item by calling UpdateAllViews	//  (with hints appropriate to your application)	GetDocument()->UpdateAllViews(NULL);		// for now just update ALL views/no hints}BOOL CEx32bCntrItem::OnChangeItemPosition(const CRect& rectPos){	ASSERT_VALID(this);	// During in-place activation CEx32bCntrItem::OnChangeItemPosition	//  is called by the server to change the position of the in-place	//  window.  Usually, this is a result of the data in the server	//  document changing such that the extent has changed or as a result	//  of in-place resizing.	//	// The default here is to call the base class, which will call	//  COleClientItem::SetItemRects to move the item	//  to the new position.	if (!COleClientItem::OnChangeItemPosition(rectPos))		return FALSE;	// TODO: update any cache you may have of the item's rectangle/extent	return TRUE;}void CEx32bCntrItem::OnGetItemPosition(CRect& rPosition){	ASSERT_VALID(this);	// During in-place activation, CEx32bCntrItem::OnGetItemPosition	//  will be called to determine the location of this item.  The default	//  implementation created from AppWizard simply returns a hard-coded	//  rectangle.  Usually, this rectangle would reflect the current	//  position of the item relative to the view used for activation.	//  You can obtain the view by calling CEx32bCntrItem::GetActiveView.	// TODO: return correct rectangle (in pixels) in rPosition	rPosition.SetRect(10, 10, 210, 210);}void CEx32bCntrItem::OnActivate(){    // Allow only one inplace activate item per frame    CEx32bView* pView = GetActiveView();    ASSERT_VALID(pView);    COleClientItem* pItem = GetDocument()->GetInPlaceActiveItem(pView);    if (pItem != NULL && pItem != this)        pItem->Close();        COleClientItem::OnActivate();}void CEx32bCntrItem::OnDeactivateUI(BOOL bUndoable){	COleClientItem::OnDeactivateUI(bUndoable);    // Hide the object if it is not an outside-in object    DWORD dwMisc = 0;    m_lpObject->GetMiscStatus(GetDrawAspect(), &dwMisc);    if (dwMisc & OLEMISC_INSIDEOUT)        DoVerb(OLEIVERB_HIDE, NULL);}void CEx32bCntrItem::Serialize(CArchive& ar){	ASSERT_VALID(this);	// Call base class first to read in COleClientItem data.	// Since this sets up the m_pDocument pointer returned from	//  CEx32bCntrItem::GetDocument, it is a good idea to call	//  the base class Serialize first.	COleClientItem::Serialize(ar);	// now store/retrieve data specific to CEx32bCntrItem	if (ar.IsStoring())	{		// TODO: add storing code here	}	else	{		// TODO: add loading code here	}}BOOL CEx32bCntrItem::CanActivate(){	// Editing in-place while the server itself is being edited in-place	//  does not work and is not supported.  So, disable in-place	//  activation in this case.	CEx32bDoc* pDoc = GetDocument();	ASSERT_VALID(pDoc);	ASSERT(pDoc->IsKindOf(RUNTIME_CLASS(COleServerDoc)));	if (pDoc->IsInPlaceActive())		return FALSE;	// otherwise, rely on default behavior	return COleClientItem::CanActivate();}/////////////////////////////////////////////////////////////////////////////// CEx32bCntrItem diagnostics#ifdef _DEBUGvoid CEx32bCntrItem::AssertValid() const{	COleClientItem::AssertValid();}void CEx32bCntrItem::Dump(CDumpContext& dc) const{	COleClientItem::Dump(dc);}#endif/////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -