if(pDC->IsPrinting())
{
DOCINFO docinfo;
memset(&docinfo, 0, sizeof(docinfo));
docinfo.cbSize = sizeof(docinfo);
docinfo.lpszDocName = _T("CDC::StartDoc() Code Fragment"); pDC->StartDoc(&docinfo);
if(page==1)
{
pDC->StartPage();
pDC->TextOut(10,10,"page 1");
page++;
pDC->EndPage();
}
else
{
pDC->StartPage();
pDC->TextOut(10,10,"page 2");
page--;
pDC->EndPage();
}
pDC->EndDoc();
}以上代码在ondraw()中,运行时预缆可用,但打印不可用,跟踪到:if (dcPrint.EndPage() < 0 || !_AfxAbortProc(dcPrint.m_hDC, 0))
{
bError = TRUE; //这里执行了!!!
break;
}把pdc->startdoc(),pdc->startpage(),pdc->endpage(),pdc->enddoc()去掉就没事了,但我要打两页。请问谁知道怎么回事?如何改?急!!!谢谢!!!
{
DOCINFO docinfo;
memset(&docinfo, 0, sizeof(docinfo));
docinfo.cbSize = sizeof(docinfo);
docinfo.lpszDocName = _T("CDC::StartDoc() Code Fragment"); pDC->StartDoc(&docinfo);
if(page==1)
{
pDC->StartPage();
pDC->TextOut(10,10,"page 1");
page++;
pDC->EndPage();
}
else
{
pDC->StartPage();
pDC->TextOut(10,10,"page 2");
page--;
pDC->EndPage();
}
pDC->EndDoc();
}以上代码在ondraw()中,运行时预缆可用,但打印不可用,跟踪到:if (dcPrint.EndPage() < 0 || !_AfxAbortProc(dcPrint.m_hDC, 0))
{
bError = TRUE; //这里执行了!!!
break;
}把pdc->startdoc(),pdc->startpage(),pdc->endpage(),pdc->enddoc()去掉就没事了,但我要打两页。请问谁知道怎么回事?如何改?急!!!谢谢!!!
pInfo->SetMaxPage(5); // 设置最大页数据为5
pInfo->m_nCurPage = 1; // start printing at page# 1
Startpage,stoppage是框架调用的.不是在OnDraw中调用的,
你不要管它,在View 的 OnPrint( CDC *pDC, CPrintInfo *pInfo )
中的pInfo->m_nCurPage即是当前要打印的页,可根据你要的绘制各页不同画面.
http://expert.csdn.net/Expert/topic/1701/1701559.xml?temp=.8957636
你如果是调用了MFC的打印,可以自己新建一菜单
void CMainFrame::OnPrintOnDoublePage()//自己定义的菜单响应函数
{
CYourView *pView=NULL;
pView=(CYourView*)(this->GetActiveView());//你的视图对象指针。
if (pView==NULL){
return;
}
pView->m_nMode=1;//表示正面
pView->OnCmdMsg(ID_FILE_PRINT,NULL,NULL,NULL);
MessageBox("请将打印纸的反面放入打印机,按OK继续。");
pView->m_nMode=2;//表示反面
pView->OnCmdMsg(ID_FILE_PRINT,NULL,NULL,NULL);
}
谢谢你。我看了你的文章。但是我只想做一个简单打印程序:即在显示时显示很长的内容,然后打印时把它分成两页来打印就可以了。另外,我看到你的文章里也用了startdoc()、startpage()了,你是在什么地方调用的,在ondraw()中不能用吗?
void CMainFrame::OnMPrint()
{
CTempView *pView=NULL;
。
}编译时有错误
error C2065: 'CTempView' : undeclared identifier好像
CView是在CMainFrame后生成的,怎么办谢谢