我正在使用PRINTDLG库为一个旧的windows应用程序,这必须打印一些文件。我配置它的方式,它拿起默认打印机和打印文档,而不显示任何对话框。但问题是,当没有打印机和默认打印机设置为保存到文件,它显示一个弹出保存文件和应用程序最小化,这是不应该发生的。2所以我想禁用打印到文件功能。3我试图设置标记来禁用打印到文件,但是它不起作用。4任何人都知道解决方案或禁用系统弹出窗口的方法。5下面是示例代码:
PRINTDLG pd;
memset(&pd, 0, sizeof(pd));
pd.lStructSize = sizeof(pd);
// Disable print to file flag
pd.Flags = PD_RETURNDEFAULT | PD_RETURNIC | PD_DISABLEPRINTTOFILE;
if (!PrintDlg(&pd))
{
MessageBox(NULL, _T("No printer found"), _T("Printer Error!"), MB_OK);
}
else
{
DOCINFO di;
memset(&di, 0, sizeof(di));
di.cbSize = sizeof(di);
StartDoc(pd.hDC, &di);
StartPage(pd.hDC);
// Drawing code begin
//
RECT rc;
rc.top = 100;
rc.left = 100;
rc.bottom = 300;
rc.right = 300;
HBRUSH greenBrush = CreateSolidBrush(RGB(0, 255, 0));
FillRect(pd.hDC, &rc, greenBrush);
DeleteObject(greenBrush);
//
// Drawing code end
EndPage(pd.hDC);
EndDoc(pd.hDC);
DeleteObject(pd.hDC);
}
1条答案
按热度按时间wgeznvg71#
我当然希望您现在已经明白了这一点,只是这样做是为了不执行代码: