不惜重金,请教打印高手
各位大虾:
我在做打印程序时遇到了一个问题,代码如下:
出现的问题是运行到标识的一步时,弹出出错对话框三个按钮的那种,终止,重试,取消
LRESULT CShenjianView::OnMyPrint(WPARAM a,LPARAM b)
{
CDC dc;
PRINTDLG pd;
LPDEVMODE lpDevMode;
CPrintDialog printDlg(FALSE);
if(AfxGetApp()->GetPrinterDeviceDefaults(&pd))
{
lpDevMode=(LPDEVMODE)pd.hDevMode;
lpDevMode->dmPaperLength=1500;
lpDevMode->dmPaperWidth=1100;
}
printDlg.m_pd.hDevMode=pd.hDevMode;
dc.Attach(printDlg.GetPrinterDC());
dc.m_bPrinting = TRUE;
CString strTitle;
strTitle="您当前打印的是生检质量";
DOCINFO di;
::ZeroMemory (&di, sizeof (DOCINFO));
di.cbSize = sizeof (DOCINFO);
di.lpszDocName = strTitle;
BOOL bPrintingOK = dc.StartDoc(&di); //运行到这一步时有问题
CPrintInfo Info;
OnBeginPrinting(&dc, &Info);
for (UINT page = Info.GetMinPage();
page <= Info.GetMaxPage() && bPrintingOK;
page++)
{
dc.StartPage();
Info.m_nCurPage = page;
int sty;
sty=Stpoint(m_pSet);
PrintBiaotou(&dc,sty);
bPrintingOK = (dc.EndPage() > 0);
}
OnEndPrinting(&dc, &Info);
if (bPrintingOK)
dc.EndDoc();
else
dc.AbortDoc();
dc.Detach();
return 1;
}