MFC怎样使打印时不弹出CPrintDialog 直接指定默认打印机打印
如题 就想在点按钮之后直接打印 我把DoModle删了 但是运行是会出错误 一定是doModle对CPrintDialog做了一些初始化的工作吧 能不能在代码中自己处理 以下是我现在的代码:
//打印
void ReportPrint::Print(BOOL bDirect)
{
DWORD dwflags=PD_ALLPAGES | PD_NOPAGENUMS | PD_USEDEVMODECOPIES | PD_SELECTION | PD_HIDEPRINTTOFILE;
CPrintDialog dlg(bDirect,dwflags,NULL);
if(dlg.DoModal()==IDOK)
{
CDC dc;
//定义打印模式信息
LPDEVMODE dev = dlg.GetDevMode();
dev->dmPaperSize = DMPAPER_USER;
dev->dmPaperLength = m_paperSize.cy * 10;
dev->dmPaperWidth = m_paperSize.cx * 10;
dev->dmFields = DM_PAPERSIZE | DM_PAPERWIDTH | DM_PAPERLENGTH | dev->dmFields;
dev->dmFields = dev->dmFields | DMBIN_MANUAL;
dev->dmDefaultSource = DMBIN_MANUAL;
strcpy((char*)dev->dmFormName,"自定义");
dc.Attach(dlg.CreatePrinterDC()); //打印机DC构造完成
dc.StartDoc("print");
CFont font;
font.CreatePointFont(atoi(m_csHeight)*10,m_csFaceName,&dc);
dc.SelectObject(&font); //设置用户配置字体
for (int i=0;i<m_nMaxPage;i++)
{
dc.StartPage();
for (int j=0;j<POINT_COUNT;j++)
{
dc.TextOut(m_printPoint[j].x*10,m_printPoint[j].y*10,m_pPrintInfo[i].text[j]);
}
dc.EndPage();
}
dc.EndDoc();
font.DeleteObject();
dc.DeleteDC();
}
}
求教高手 该怎么改才好