// 08MDIScribbleDoc.cpp : CMy08MDIScribbleDoc 類別的實作
//

#include "stdafx.h"
#include "08MDIScribble.h"

#include <math.h>

#include "08MDIScribbleDoc.h"
#include ".\08mdiscribbledoc.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CMy08MDIScribbleDoc

IMPLEMENT_DYNCREATE(CMy08MDIScribbleDoc, CDocument)

BEGIN_MESSAGE_MAP(CMy08MDIScribbleDoc, CDocument)
END_MESSAGE_MAP()


// CMy08MDIScribbleDoc 建構/解構

CMy08MDIScribbleDoc::CMy08MDIScribbleDoc()
{
	// TODO: 在此處加入一次建構程式碼

}

CMy08MDIScribbleDoc::~CMy08MDIScribbleDoc()
{
}

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

	// TODO: 在此處加入重新初始化程式碼
	// (SDI 文件會重用此文件)
    CStroke *ptr = new CStroke;
    for (int i=0; i<10; i++)
        ptr->addPoint(CPoint(20+i*50, 40+(int)sqrt((double)i*1000)));
    addStroke(ptr);

	return TRUE;
}




// CMy08MDIScribbleDoc 序列化

void CMy08MDIScribbleDoc::Serialize(CArchive& ar)
{
	if (ar.IsStoring())
	{
		// TODO: 在此處加入儲存程式碼
	}
	else
	{
		// TODO: 在此處加入載入程式碼
	}
}


// CMy08MDIScribbleDoc 診斷

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

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


// CMy08MDIScribbleDoc 命令

void CMy08MDIScribbleDoc::addStroke(CStroke * stroke)
{
    m_strokes.Add(stroke);
}

void CMy08MDIScribbleDoc::draw(CDC* pDC)
{
    for (int i=0; i<m_strokes.GetSize(); i++)
        m_strokes[i]->draw(pDC);
}

void CMy08MDIScribbleDoc::DeleteContents()
{
    // TODO: 在此加入特定的程式碼和 (或) 呼叫基底類別
    for (int i=0; i<m_strokes.GetSize(); i++)
        delete m_strokes[i];

    CDocument::DeleteContents();
}
