CView::OnPreparePrinting

调用机制,用于在文档打印或已预览之前。

virtual BOOL OnPreparePrinting(
   CPrintInfo* pInfo 
);

参数

  • pInfo
    指向 CPrintInfo 描述当前打印作业的结构。

返回值

非零启动打印;0,如果取消打印作业的。

备注

默认实现不执行任何操作。

必须重写此功能使打印和打印预览。 调用 DoPreparePrinting 成员函数,并将它 pInfo 参数,然后返回其返回值; DoPreparePrinting 显示打印对话框并创建打印机上下文。 除了默认值以外,如果要初始化具有值的打印对话框,请将值分配给 pInfo的成员。 例如,因此,如果您知道文档的长度,请将该值设置为 pInfo 的 SetMaxPage 成员函数在调用 DoPreparePrinting之前。 此值在显示:在打印对话框的范围部分的框。

DoPreparePrinting 不显示预览工作的"打印"对话框。 如果需要将跳过打印作业的打印对话框中,选中 pInfo 的 m_bPreview 成员是 FALSE 然后将其设置为 TRUE 在通过之前对 DoPreparePrinting;之后重置到 FALSE

例如如果需要执行需要对表示打印机上下文的 CDC 对象的访问的初始化(,因此,如果您需要在指定文档的长度之前知道页大小),请重写 OnBeginPrinting 成员函数。

如果要设置 pInfo 参数的 m_nNumPreviewPagesm_strPageDesc 成员的值,请在调用 DoPreparePrinting之后执行。 DoPreparePrinting 成员函数上设置 m_nNumPreviewPages 到应用程序的.INI文件中找到的值并将 m_strPageDesc 为其默认值。

示例

重写 OnPreparePrinting 并从该重写的 DoPreparePrinting,以便该框架将显示打印对话框并创建自己的打印机dc:date。

BOOL CMyEditView::OnPreparePrinting(CPrintInfo* pInfo)
{
   return CEditView::DoPreparePrinting(pInfo);
}

如果您知道多少页的文档中,在调用 DoPreparePrinting之前设置在 OnPreparePrinting 的最大页。 框架将显示在的最大页数“更改为”中"打印"对话框。

BOOL CExampleView::OnPreparePrinting(CPrintInfo* pInfo)
{
   //The document has 2 pages.
   pInfo->SetMaxPage(2);
   return CView::DoPreparePrinting(pInfo);
}

要求

Header: afxwin.h

请参见

参考

CView选件类

层次结构图

CPrintInfo结构

CView::DoPreparePrinting

CView::OnBeginPrinting

CView::OnPrepareDC

CView::OnPrint