📄 srvritem.cpp
字号:
// SrvrItem.cpp : implementation file
//
#include "stdafx.h"
#include "IndexEditor.h"
#include "IndexEditorDoc.h"
#include "SrvrItem.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CIndexsSrvrItem 实现
IMPLEMENT_DYNAMIC(CIndexsSrvrItem, COleServerItem)
CIndexsSrvrItem::CIndexsSrvrItem(CIndexEditorDoc* pContainerDoc)
: COleServerItem(pContainerDoc, TRUE)
{
// TODO: 在此处添加一次性构造代码
//(如将附加剪贴板格式添加到项的数据源中)
}
CIndexsSrvrItem::~CIndexsSrvrItem()
{
// TODO: 在此处添加清除代码
}
void CIndexsSrvrItem::Serialize(CArchive& ar)
{
// 如果将该项复制到剪贴板中,
// 则框架将调用 CIndexsSrvrItem::Serialize。这可以
// 通过 OLE 回调 OnGetClipboardData 而自动执行。对于嵌入项,默认最好为对文档的 Serialize
// 函数的委托。如果支持链接,则可能只需序列化
// 文档的一部分。
if (!IsLinkedItem())
{
CIndexEditorDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (pDoc)
pDoc->Serialize(ar);
}
}
BOOL CIndexsSrvrItem::OnGetExtent(DVASPECT dwDrawAspect, CSize& rSize)
{
// 大多数与此类似的应用程序只对绘制项的内容
// 方面进行处理。如果希望支持其他方面,如
// DVASPECT_THUMBNAIL (通过重写 OnDrawEx),则应修改 OnGetExtent 的此实现
// 以处理
//其他方面。
if (dwDrawAspect != DVASPECT_CONTENT)
return COleServerItem::OnGetExtent(dwDrawAspect, rSize);
// 调用 CIndexsSrvrItem::OnGetExtent 以便在整个项的 HIMETRIC 单元中获取范围。
// 此处的默认实现
// 只返回单元的硬编码数字。
// TODO: 替换此任意大小
rSize = CSize(3000, 3000); // 3000 x 3000 HIMETRIC 单元
return TRUE;
}
BOOL CIndexsSrvrItem::OnDraw(CDC* pDC, CSize& rSize)
{
if (!pDC)
return FALSE;
// 如果使用 rSize,则将此移除
UNREFERENCED_PARAMETER(rSize);
// TODO: 设置映射模式和范围
// (此范围通常与从 OnGetExtent 返回的大小相同)
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetWindowOrg(0,0);
pDC->SetWindowExt(3000, 3000);
// TODO: 在此处添加绘制代码。也可以填充 HIMETRIC 范围。
// 所有绘制都将在图元文件设备上下文(pDC)中进行。
return TRUE;
}
// CIndexsSrvrItem 诊断
#ifdef _DEBUG
void CIndexsSrvrItem::AssertValid() const
{
COleServerItem::AssertValid();
}
void CIndexsSrvrItem::Dump(CDumpContext& dc) const
{
COleServerItem::Dump(dc);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -