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

📄 cformeditordoc.cpp

📁 FormEditor,模拟Visual Basic窗口编辑界面
💻 CPP
字号:
// CFormEditorDoc.cpp : implementation of the CCFormEditorDoc class
//

#include "stdafx.h"
#include "CFormEditor.h"

#include "CFormEditorDoc.h"
#define __IMG_TOOLBOX_STATIC 48
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

CCFormEditorDoc::DOC_ITEM_DATA::DOC_ITEM_DATA()
	: m_dwItemID( __IMG_TOOLBOX_STATIC )
	, m_rcItem( 0, 0, 0, 0 )
{
}

CCFormEditorDoc::DOC_ITEM_DATA::DOC_ITEM_DATA( DWORD dwItemID, const RECT & rcItem )
	: m_dwItemID( dwItemID )
	, m_rcItem( rcItem )
{
	m_rcItem.NormalizeRect();
}

CCFormEditorDoc::DOC_ITEM_DATA::DOC_ITEM_DATA( const CCFormEditorDoc::DOC_ITEM_DATA & other )
	: m_dwItemID( other.m_dwItemID )
	, m_rcItem( other.m_rcItem )
{
	m_rcItem.NormalizeRect();
}

CCFormEditorDoc::DOC_ITEM_DATA::~DOC_ITEM_DATA()
{
}

CCFormEditorDoc::DOC_ITEM_DATA & CCFormEditorDoc::DOC_ITEM_DATA::operator=( const CCFormEditorDoc::DOC_ITEM_DATA & other )
{
	m_dwItemID = other.m_dwItemID;
	m_rcItem = other.m_rcItem;
	m_rcItem.NormalizeRect();
	return *this;
}

void CCFormEditorDoc::DOC_ITEM_DATA::Serialize( CArchive & ar )
{
	if( ar.IsStoring() )
	{
		ar << m_dwItemID;
		ar << m_rcItem;
	} // if( ar.IsStoring() )
	else
	{
		ar >> m_dwItemID;
		ar >> m_rcItem;
	} // else from if( ar.IsStoring() )
}

CArchive & operator<<( CArchive & ar, const CCFormEditorDoc::DOC_ITEM_DATA & _did )
{
	ASSERT( ar.IsStoring() );
	( const_cast < CCFormEditorDoc::DOC_ITEM_DATA & > ( _did ) ).Serialize( ar );
	return ar;
}

CArchive & operator>>( CArchive & ar, CCFormEditorDoc::DOC_ITEM_DATA & _did )
{
	ASSERT( (!ar.IsStoring()) );
	_did.Serialize( ar );
	return ar;
}

/////////////////////////////////////////////////////////////////////////////
// CCFormEditorDoc

IMPLEMENT_DYNCREATE(CCFormEditorDoc, CDocument)

BEGIN_MESSAGE_MAP(CCFormEditorDoc, CDocument)
	//{{AFX_MSG_MAP(CCFormEditorDoc)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCFormEditorDoc construction/destruction

CCFormEditorDoc::CCFormEditorDoc()
{
	// TODO: add one-time construction code here
    g_sizeMinForm=CSize( 450, 300 );
}

CCFormEditorDoc::~CCFormEditorDoc()
{
}

BOOL CCFormEditorDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	// TODO: add reinitialization code here
	// (SDI documents will reuse this document)

	return TRUE;
}



/////////////////////////////////////////////////////////////////////////////
// CCFormEditorDoc serialization

void CCFormEditorDoc::Serialize(CArchive& ar)
{
	if( ar.IsStoring() )
	{
		DWORD dwCount = DWORD( m_vItems.GetSize() );
		ar << dwCount;
		ar<<g_sizeMinForm;
		for( DWORD i = 0; i < dwCount; i++ )
		{
			DOC_ITEM_DATA & _did = m_vItems[i];
			ar << _did;

		}
	} // if( ar.IsStoring() )
	else
	{
		m_vItems.RemoveAll();
		DWORD dwCount;
		ar >> dwCount;
		ar>>g_sizeMinForm;
		for( DWORD i = 0; i < dwCount; i++ )
		{
			DOC_ITEM_DATA _did;
			ar >> _did;
			m_vItems.Add( _did );
		}
		ASSERT( dwCount == DWORD( m_vItems.GetSize() ) );
		UpdateAllViews( NULL, 1 );
	} // else from if( ar.IsStoring() )
}

/////////////////////////////////////////////////////////////////////////////
// CCFormEditorDoc diagnostics

#ifdef _DEBUG
void CCFormEditorDoc::AssertValid() const
{
	CDocument::AssertValid();
}

void CCFormEditorDoc::Dump(CDumpContext& dc) const
{
	CDocument::Dump(dc);
}
#endif //_DEBUG

//CSize CCFormEditorDoc::g_sizeMinForm( 450, 300 );

CSize CCFormEditorDoc::CalcActualLayoutSize( CDC * pDC )
{
	ASSERT_VALID( this );
	ASSERT( pDC != NULL );
	ASSERT( pDC->GetSafeHdc() != NULL );
	pDC;
	return g_sizeMinForm;
}
void CCFormEditorDoc::OnChangedViewList() 
{
	CDocument::OnChangedViewList();
	UpdateAllViews(NULL);
}

/////////////////////////////////////////////////////////////////////////////
// CCFormEditorDoc commands

⌨️ 快捷键说明

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