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

📄 scrollprintview.cpp

📁 这是一个信息管理系统的源代码
💻 CPP
字号:
// ScrollPrintView.cpp : implementation file
//

#include "stdafx.h"
#include "a1.h"
#include "ScrollPrintView.h"
//#define ID_FILE_PRINT1 WM_USER +2

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

/////////////////////////////////////////////////////////////////////////////
// CScrollPrintView

IMPLEMENT_DYNCREATE(CScrollPrintView, CMyView)

CScrollPrintView::CScrollPrintView()
{
	CSize sizeTotal;
	this->m_draw=NULL;
	// TODO: calculate the total size of this view
	sizeTotal.cx = sizeTotal.cy = 1;
	SetScrollSizes(MM_TEXT, sizeTotal);
	lines=10;
}

CScrollPrintView::~CScrollPrintView()
{
}


BEGIN_MESSAGE_MAP(CScrollPrintView, CView)
	//{{AFX_MSG_MAP(CScrollPrintView)
	ON_WM_HSCROLL()
	ON_WM_VSCROLL()
	ON_WM_DESTROY()
	ON_WM_SIZE()
	ON_WM_CREATE()
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
	ON_COMMAND(ID_FILE_PRINT, OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CMyView::OnFilePrintPreview)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, OnFilePrint)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CScrollPrintView drawing

void CScrollPrintView::OnInitialUpdate()
{	
	CMyView::OnInitialUpdate();
}

void CScrollPrintView::OnDraw(CDC* pDC)
{
	CDocument* pDoc = GetDocument();
}

/////////////////////////////////////////////////////////////////////////////
// CScrollPrintView diagnostics

#ifdef _DEBUG
void CScrollPrintView::AssertValid() const
{
	CMyView::AssertValid();
}

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

/////////////////////////////////////////////////////////////////////////////
// CScrollPrintView message handlers

void CScrollPrintView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	// TODO: Add your message handler code here and/or call default
	
	CMyView::OnHScroll(nSBCode, nPos, pScrollBar);
}

void CScrollPrintView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	// TODO: Add your message handler code here and/or call default
	
	CMyView::OnVScroll(nSBCode, nPos, pScrollBar);
}

void CScrollPrintView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo) 
{
	this->m_draw->OnBeginPrinting(pDC,pInfo);
	CMyView::OnBeginPrinting(pDC, pInfo);
}

void CScrollPrintView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo) 
{
	// TODO: Add your specialized code here and/or call the base class

	if(m_draw!=NULL)
	{
	CDC*	m_pdcPrint;
	m_pdcPrint=GetDC();
	int ypixperi=m_pdcPrint->GetDeviceCaps(LOGPIXELSY);


	m_draw->InitData(printInfo.m_rectDraw.Width(),
		printInfo.m_rectDraw.Height(),
		ypixperi,m_pdcPrint,
		&printInfo,m_draw->GetListCtrl());

	this->ReleaseDC(m_pdcPrint);
	}

	CMyView::OnEndPrinting(pDC, pInfo);
}

void CScrollPrintView::OnEndPrintPreview(CDC* pDC, CPrintInfo* pInfo, POINT point, CPreView* pView) 
{
	// TODO: Add your specialized code here and/or call the base class
//	m_draw->OnEndPrintPreview(pDC,pInfo,point,pView);

	CMyView::OnEndPrintPreview(pDC, pInfo, point, pView);
}

void CScrollPrintView::OnPrint(CDC* pDC, CPrintInfo* pInfo) 
{
	// TODO: Add your specialized code here and/or call the base class

	if(m_draw!=NULL)
	{
	this->m_draw->PrintDlg(pDC,pInfo);
	this->m_draw->PrintPageHeader(pDC,pInfo);
	this->m_draw->PrintPageFooter(pDC, pInfo);
	}
//mr	CScrollView::OnPrint(pDC, pInfo);
}

void CScrollPrintView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) 
{

	CMyView::OnPrepareDC(pDC, pInfo);
}

BOOL CScrollPrintView::OnPreparePrinting(CPrintInfo* pInfo) 
{
	// TODO: call DoPreparePrinting to invoke the Print dialog box

	return DoPreparePrinting(pInfo);
}

void CScrollPrintView::OnFilePrint()
{
	CMyView::OnFilePrint();
}

//DEL void CScrollPrintView::OnFilePrintPreview()
//DEL {
//DEL 	CMyView::OnFilePrintPreview();
//DEL }

void CScrollPrintView::SelectDrawDlg(CDrawDlg *pdraw)
{
	this->m_draw=pdraw;
	m_draw->CalcUnitWidth();
	this->PostMessage(WM_SIZE);
}

void CScrollPrintView::OnDestroy() 
{
	CMyView::OnDestroy();

}

BOOL CScrollPrintView::DestroyWindow() 
{
	// TODO: Add your specialized code here and/or call the base class
	return CMyView::DestroyWindow();
}

void CScrollPrintView::OnSize(UINT nType, int cx, int cy) 
{
	CView::OnSize(nType, cx, cy);
	this->GetClientRect(&printInfo.m_rectDraw);
	if(m_draw!=NULL)
	{
	CDC*	m_pdcPrint;
	m_pdcPrint=GetDC();
	int ypixperi=m_pdcPrint->GetDeviceCaps(LOGPIXELSY);

	printInfo.m_rectDraw.bottom=max(ypixperi*2,printInfo.m_rectDraw.bottom);
	printInfo.m_rectDraw.right=max(m_draw->GetTotalChars()*10,printInfo.m_rectDraw.right);
	
	m_draw->InitData(printInfo.m_rectDraw.Width(),
		printInfo.m_rectDraw.Height(),
		ypixperi,m_pdcPrint,
		&printInfo,m_draw->GetListCtrl());

	this->SetScrollSizes(MM_TEXT,
		CSize(printInfo.m_rectDraw.Width(),m_draw->GetMaxPages()*(printInfo.m_rectDraw.Height())),
		CSize(printInfo.m_rectDraw.Width(),printInfo.m_rectDraw.Height())
		);

	this->ReleaseDC(m_pdcPrint);
	}
	else
	afxDump<<"\n Nom_draw OnSize";

}

int CScrollPrintView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	this->SetWindowText("打印");
	return 0;
}

void CScrollPrintView::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	OnPrepareDC(&dc);
	if(m_draw!=NULL){
		this->m_draw->PaintDlg(&dc,&this->printInfo);
	}
	// Do not call CView::OnPaint() for painting messages
}

void CScrollPrintView::OnFilePrintPreview() 
{
CMyView::OnFilePrintPreview();	
}

⌨️ 快捷键说明

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