资源简介
这个是两部电梯八层楼的用MFC实现的模拟,是我今年参加学校的竞赛写的
代码片段和文件信息
// CntrItem.cpp : CMyElevatorCntrItem 类的实现
//
#include “stdafx.h“
#include “MyElevator.h“
#include “MyElevatorDoc.h“
#include “MyElevatorView.h“
#include “CntrItem.h“
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CMyElevatorCntrItem 的实现
IMPLEMENT_SERIAL(CMyElevatorCntrItem COleClientItem 0)
CMyElevatorCntrItem::CMyElevatorCntrItem(CMyElevatorDoc* pContainer)
: COleClientItem(pContainer)
{
// TODO: 在此添加一次性构造代码
}
CMyElevatorCntrItem::~CMyElevatorCntrItem()
{
// TODO: 在此处添加清除代码
}
void CMyElevatorCntrItem::onchange(OLE_NOTIFICATION nCode DWORD dwParam)
{
ASSERT_VALID(this);
COleClientItem::onchange(nCode dwParam);
// 在编辑某项时(就地编辑或完全打开进行编辑),
//该项将就其自身状态的更改
// 或其内容的可视外观状态的更改发送 onchange 通知。
// TODO: 通过调用 UpdateAllViews 使该项无效
//(包括适合您的应用程序的提示)
GetDocument()->UpdateAllViews(NULL);
// 现在更新所有视图/无提示
}
BOOL CMyElevatorCntrItem::onchangeItemPosition(const CRect& rectPos)
{
ASSERT_VALID(this);
// 就地激活期间,服务器调用 CMyElevatorCntrItem::onchangeItemPosition
// 以更改就地
// 窗口的位置。这通常是由于服务器
// 文档中的数据更改而导致范围改变或是
// 就地调整大小所引起的。
//
// 此处的默认设置调用基类,该基类将调用
// COleClientItem::SetItemRects 以将该项
// 移动到新的位置。
if (!COleClientItem::onchangeItemPosition(rectPos))
return FALSE;
// TODO: 更新您在该项的矩形/范围内可具有的任何缓存
return TRUE;
}
void CMyElevatorCntrItem::OnGetItemPosition(CRect& rPosition)
{
ASSERT_VALID(this);
// 就地激活期间,将调用CMyElevatorCntrItem::OnGetItemPosition
// 以决定该项的位置。通常,
// 该矩形会反映与激活所用视图
// 相关项的当前位置。调用
// CMyElevatorCntrItem::GetActiveView 可得到视图。
// TODO: 返回 rPosition 中的正确矩形(以像素表示)
CSize size;
rPosition.SetRectEmpty();
if (SUCCEEDED(GetExtent(&size m_nDrawAspect)))
{
CMyElevatorView* pView = GetActiveView();
ASSERT_VALID(pView);
if (!pView)
return;
CDC *pDC = pView->GetDC();
ASSERT(pDC);
if (!pDC)
return;
pDC->HIMETRICtoLP(&size);
rPosition.SetRect(10 10 size.cx + 10 size.cy + 10);
}
else
rPosition.SetRect(10 10 210 210);
}
void CMyElevatorCntrItem::onactivate()
{
// 每个框架只能有一个就地激活项
CMyElevatorView* pView = GetActiveView();
ASSERT_VALID(pView);
if (!pView)
return;
COleClientItem* pItem = GetDocument()->GetInPlaceActiveItem(pView);
if (pItem != NULL && pItem != this)
pItem->Close();
COleClientItem::onactivate();
}
void CMyElevatorCntrItem::ondeactivateUI(BOOL bUndoable)
{
COleClientItem::ondeactivateUI(bUndoable);
DWORD dwMisc = 0;
m_lpobject->GetMiscStatus(GetDrawAspect() &dwMisc);
if (dwMisc & OLEMISC_INSIDEOUT)
DoVerb(OLEIVERB_HIDE NULL);
}
void CMyElevatorCntrItem::Serialize(CArchive& ar)
{
ASSERT_VALID(this);
// 首先调用基类以读取 COleClientItem 数据。
// 因为这样会设置从 CMyElevatorCntrItem::GetDocument 返回的 m_pDocument 指针
//,所以最好先调用
// 基类 Serialize。
COleClientItem::Serialize(ar);
// 现在存储/检索特定于 CMyElevatorCntrItem 的数据
if (ar.IsStoring())
{
// TODO: 在此添加存储代码
}
else
{
// TODO:
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5416 2008-03-27 13:18 MyElevator\MyElevator.vcproj
文件 3754 2008-03-17 18:18 MyElevator\ReadMe.txt
文件 491 2008-03-17 18:18 MyElevator\MyElevator.h
文件 3066 2008-03-17 18:18 MyElevator\MyElevator.cpp
文件 1550 2008-03-17 18:18 MyElevator\stdafx.h
文件 139 2008-03-17 18:18 MyElevator\stdafx.cpp
文件 653 2008-03-17 18:18 MyElevator\MainFrm.h
文件 1843 2008-03-25 22:27 MyElevator\MainFrm.cpp
文件 573 2008-03-17 18:18 MyElevator\MyElevatorDoc.h
文件 1859 2008-03-17 18:18 MyElevator\MyElevatorDoc.cpp
文件 2164 2008-03-28 00:46 MyElevator\MyElevatorView.h
文件 13494 2008-03-28 17:15 MyElevator\MyElevatorView.cpp
文件 1193 2008-03-17 18:18 MyElevator\CntrItem.h
文件 3619 2008-03-17 18:18 MyElevator\CntrItem.cpp
文件 11657 2008-03-28 00:45 MyElevator\MyElevator.rc
文件 1710 2008-03-28 00:45 MyElevator\Resource.h
文件 68292 2008-03-28 00:45 MyElevator\MyElevator.aps
文件 2384 2008-03-28 17:10 MyElevator\ElevatorManager.h
文件 20201 2008-03-28 17:09 MyElevator\ElevatorManager.cpp
文件 366 2008-03-17 18:18 MyElevator\res\MyElevator.rc2
文件 699 2008-03-17 18:18 MyElevator\res\MyElevator.manifest
文件 1078 2003-04-01 19:36 MyElevator\res\MyElevatorDoc.ico
文件 1318 2008-03-18 22:22 MyElevator\res\Toolbar.bmp
文件 598 2008-03-19 19:43 MyElevator\res\toolbar2.bmp
文件 21630 2008-03-25 22:12 MyElevator\res\MyElevator.ico
文件 478 2008-03-27 13:50 MyElevator\res\toolbar1.bmp
目录 0 2008-03-28 18:41 MyElevator\res
目录 0 2008-03-28 18:41 MyElevator
----------- --------- ---------- ----- ----
170225 28
............此处省略1个文件信息
- 上一篇:AES5种加密模式源码C语言
- 下一篇:编译C++需要的库文件win32 mak
评论
共有 条评论