www.pudn.com > CHA03.rar   To Read all the content


[file head]:
// DrawDoc.cpp : implementation of the CDrawDoc class
//

#include "stdafx.h"
#include "DrawCli.h"

#include "DrawDoc.h"
#include "CntrItem.h"

#include "DrawObj.h"
#include "DrawVw.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDrawDoc

IMPLEMENT_DYNCREATE(CDrawDoc, COleDocument)

BEGIN_MESSAGE_MAP(CDrawDoc, COleDocument)
//{{AFX_MSG_MAP(CDrawDoc)
ON_COMMAND(ID_VIEW_PAPERCOLOR, OnViewPapercolor)
//}}AFX_MSG_MAP
// Enable default OLE container implementation
ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, COleDocument::OnUpdatePasteMenu)
ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE_LINK, COleDocument::OnUpdatePasteLinkMenu)
ON_UPDATE_COMMAND_UI(ID_OLE_EDIT_CONVERT, COleDocument::OnUpdateObjectVerbMenu)
ON_COMMAND(ID_OLE_EDIT_CONVERT, COleDocument::OnEditConvert)
ON_UPDATE_COMMAND_UI(ID_OLE_EDIT_LINKS, COleDocument::OnUpdateEditLinksM
... ...

[file tail]:
... ...
View->IsSelected(pObj))
pObj->DrawTracker(pDC, CDrawObj::selected);
}

}
void CDrawDoc::ComputePageSize()
{
CSize new_size(800, 600); // 8.5" x 11" default

CPrintDialog dlg(FALSE);
if (AfxGetApp()->GetPrinterDeviceDefaults(&amt;dlg.m_pd))
{
// GetPrinterDC returns a HDC so attach it
CDC dc;
HDC hDC= dlg.CreatePrinterDC();
ASSERT(hDC != NULL);
dc.Attach(hDC);

// Get the size of the page in loenglish
new_size.cx = MulDiv(dc.GetDeviceCaps(HORZSIZE), 1000, 254);
new_size.cy = MulDiv(dc.GetDeviceCaps(VERTSIZE), 1000, 254);
}

// if size changed then iterate over views and reset
if (new_size != m_size)
{
m_size = new_size;
POSITION pos = GetFirstViewPosition();
while (pos != NULL)
((CDrawView*)GetNextView(pos))->SetPageSize(m_size);
}

}

void CDrawDoc::OnViewPapercolor()
{
CColorDialog dlg;
if (dlg.DoModal() != IDOK)
return;

m_paperColor = dlg.GetColor();
SetModifiedFlag();
UpdateAllViews(NULL);

}