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_nNumPreviewPages 或 m_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