CPRintDialog不允许选择打印范围

时间:2009-07-02 10:45:21

标签: mfc printing

我正在尝试为我的应用添加打印功能。我显示CPrintDialog以获取打印机选项。如何启用打印范围选项?目前,当我在doModal()对话框时禁用此选项。

2 个答案:

答案 0 :(得分:1)

您传递给CPrintDialog构造函数的参数是什么?构造函数声明为

CPrintDialog(BOOL bPrintSetupOnly,
    DWORD dwFlags = PD_ALLPAGES|PD_USEDEVMODECOPIES|PD_NOPAGENUMS|
                    PD_HIDEPRINTTOFILE|PD_NOSELECTION,
    CWnd* pParentWnd = NULL);

因此,如果您没有为“dwFlags”参数提供值,您将获得这些默认标志。默认标志包括PD_NOPAGENUMS,因此将禁用页面选择控件。您还必须设置最大页码,以使页面选择控件生效。尝试将代码更改为

CPrintDialog dlg(FALSE,
    PD_ALLPAGES|PD_USEDEVMODECOPIES|PD_HIDEPRINTTOFILE|PD_NOSELECTION);
dlg.m_pd.nMaxPage = 100;
dlg.DoModal();

答案 1 :(得分:0)

您的打印代码是否设置了要打印的页面数量?我手边没有任何代码,但我认为它在OnPreparePrintDC()或类似的东西中,你设置m_MaxPage或者你得到的对象的成员作为参数。