www.pudn.com > 4533566799.rar > FractalDoc.cpp


//贵州省安顺市第二高级中学 高二一班 蒋伟	 
//2002.7.1 
//请勿修改版权信息 谢谢 
//Neil 
// 
// FractalDoc.cpp : implementation of the CFractalDoc class 
// 
 
#include "stdafx.h" 
#include "Fractal.h" 
 
#include "FractalDoc.h" 
#include "time.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CFractalDoc 
 
IMPLEMENT_DYNCREATE(CFractalDoc, CDocument) 
 
BEGIN_MESSAGE_MAP(CFractalDoc, CDocument) 
	//{{AFX_MSG_MAP(CFractalDoc) 
		// 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() 
 
///////////////////////////////////////////////////////////////////////////// 
// CFractalDoc construction/destruction 
 
CFractalDoc::CFractalDoc(){} 
CFractalDoc::~CFractalDoc(){} 
 
BOOL CFractalDoc::OnNewDocument() 
{ 
	if (!CDocument::OnNewDocument()) 
		return FALSE; 
 
	time_t now; 
	if(time(&now)&1){ 
		m_bDrawPixel=false; 
		m_branch_num=40;	 
		m_last_branch_length=10; 
		m_branch_length=300; 
		m_right_branch_angle=20; 
		m_left_branch_angle=80; 
		m_cut_rate=0.618; 
		m_color=RGB(128,77,3); 
		m_linewidth=1; 
	} 
	else{ 
		m_bDrawPixel=true; 
		m_branch_num=3;	 
		m_last_branch_length=3; 
		m_branch_length=100; 
		m_right_branch_angle=9; 
		m_left_branch_angle=9; 
		m_cut_rate=0.3; 
		m_color=RGB(230,60,20); 
		m_linewidth=1; 
	} 
 
	::SendMessage(::GetActiveWindow(),WM_COMMAND,ID_VIEW_REFRESH,0); 
	return TRUE; 
} 
 
 
 
///////////////////////////////////////////////////////////////////////////// 
// CFractalDoc serialization 
 
void CFractalDoc::Serialize(CArchive& ar) 
{ 
	if (ar.IsStoring()) 
	{ 
		ar<>m_bDrawPixel>>m_branch_num; 
		ar>>m_last_branch_length>>m_branch_length; 
		ar>>m_right_branch_angle>>m_left_branch_angle; 
		ar>>m_cut_rate>>m_color>>m_linewidth; 
 
		::SendMessage(::GetActiveWindow(),WM_COMMAND,ID_VIEW_REFRESH,0); 
	} 
} 
 
///////////////////////////////////////////////////////////////////////////// 
// CFractalDoc diagnostics 
 
#ifdef _DEBUG 
void CFractalDoc::AssertValid() const{CDocument::AssertValid();} 
void CFractalDoc::Dump(CDumpContext& dc) const{CDocument::Dump(dc);} 
#endif //_DEBUG 
 
///////////////////////////////////////////////////////////////////////////// 
// CFractalDoc commands