CPrintInfo 结构

存储有关打印或打印预览作业的信息。

语法

struct CPrintInfo

成员

公共方法

名称 描述
CPrintInfo::GetFromPage 返回正在打印的第一页的页码。
CPrintInfo::GetMaxPage 返回文档最后一页的页码。
CPrintInfo::GetMinPage 返回文档第一页的页码。
CPrintInfo::GetOffsetPage 返回组合 DocObject 打印作业中打印的 DocObject 项的第一页之前的页数。
CPrintInfo::GetToPage 返回正在打印的最后一页的页码。
CPrintInfo::SetMaxPage 设置文档最后一页的页码。
CPrintInfo::SetMinPage 设置文档第一页的页码。

公共数据成员

“属性” 描述
CPrintInfo::m_bContinuePrinting 包含一个标记,该标记指示框架是否应继续执行打印循环。
CPrintInfo::m_bDirect 包含一个标记,该标记指示是否直接打印文档(而不显示“打印”对话框)。
CPrintInfo::m_bDocObject 包含一个标记,该标记指示正在打印的文档是否为 DocObject。
CPrintInfo::m_bPreview 包含一个标记,该标记指示是否正在预览文档。
CPrintInfo::m_dwFlags 指定 DocObject 打印操作。
CPrintInfo::m_lpUserData 包含指向用户创建的结构的指针。
CPrintInfo::m_nCurPage 标识当前正在打印的页面的页码。
CPrintInfo::m_nJobNumber 指定操作系统为当前打印作业分配的作业编号
CPrintInfo::m_nNumPreviewPages 标识预览窗口中显示的页数;1 或 2。
CPrintInfo::m_nOffsetPage 指定组合 DocObject 打印作业中特定 DocObject 的第一页的偏移量。
CPrintInfo::m_pPD 包含指向 CPrintDialog 对象(用于“打印”对话框)的指针。
CPrintInfo::m_rectDraw 指定定义当前可用页面区域的矩形。
CPrintInfo::m_strPageDesc 包含页码显示的格式字符串。

备注

CPrintInfo 是一个结构,没有基类。

每次选择“打印”或“打印预览”命令时,框架都会创建一个 CPrintInfo 对象,并在命令完成后将其销毁。

CPrintInfo 包含有关整个打印作业的信息(如要打印的页面范围),以及打印作业的当前状态(如当前正在打印的页面)。 某些信息存储在关联的 CPrintDialog 对象中;此对象包含用户在“打印”对话框中输入的值。

在打印过程中,CPrintInfo 对象在框架和视图类之间传递,用于在两者之间交换信息。 例如,框架通过向 CPrintInfom_nCurPage 成员赋值来通知视图类要打印文档的哪个页面;视图类检索值并执行指定页面的实际打印。

另一个示例是文档长度在打印之前是未知的。 在这种情况下,每打印一页,视图类都会测试文档的末尾。 到达末尾时,视图类将 CPrintInfom_bContinuePrinting 成员设置为 FALSE;这会通知框架停止打印循环。

CPrintInfo 由“另请参阅”下列出的 CView 的成员函数使用。有关 Microsoft 基础类库提供的打印体系结构的详细信息,请参阅框架窗口文档/视图体系结构以及打印打印:多页文档文章。

继承层次结构

CPrintInfo

要求

标头:afxext.h

CPrintInfo::GetFromPage

调用此函数可检索要打印的第一页的页码。

UINT GetFromPage() const;

返回值

要打印的第一页的页码。

备注

这是用户在“打印”对话框中指定的值,它存储在 m_pPD 成员引用的 CPrintDialog 对象中。 如果用户未指定值,则默认值为文档的第一页。

CPrintInfo::GetMaxPage

调用此函数可检索文档最后一页的页码。

UINT GetMaxPage() const;

返回值

文档最后一页的页码。

备注

此值存储在 m_pPD 成员引用的 CPrintDialog 对象中。

CPrintInfo::GetMinPage

调用此函数可检索文档第一页的页码。

UINT GetMinPage() const;

返回值

文档第一页的页码。

备注

此值存储在 m_pPD 成员引用的 CPrintDialog 对象中。

CPrintInfo::GetOffsetPage

从 DocObject 客户端打印多个 DocObject 项时,调用此函数可检索偏移量。

UINT GetOffsetPage() const;

返回值

组合 DocObject 打印作业中打印的 DocObject 项的第一页之前的页数。

注解

此值由 m_nOffsetPage 成员引用。 当与其他活动文档打印为 DocObject 时,文档的第一页的编号将为 m_nOffsetPage 值 + 1。 仅当 m_bDocObject 值为 TRUE 时,m_nOffsetPage 成员才有效。

CPrintInfo::GetToPage

调用此函数可检索要打印的最后一页的页码。

UINT GetToPage() const;

返回值

要打印的最后一页的页码。

注解

这是用户在“打印”对话框中指定的值,它存储在 m_pPD 成员引用的 CPrintDialog 对象中。 如果用户未指定值,则默认值为文档的最后一页。

CPrintInfo::m_bContinuePrinting

包含一个标记,该标记指示框架是否应继续执行打印循环。

备注

如果要执行打印时分页,可在到达文档末尾后,重写 CView::OnPrepareDC 以将此成员设置为 FALSE。 如果在打印作业开始时使用 SetMaxPage 成员函数指定了文档长度,则无需修改此变量。 m_bContinuePrinting 成员是 BOOL 类型的公共变量。

CPrintInfo::m_bDirect

如果直接打印将绕过“打印”对话框,则框架将此成员设置为 TRUE;否则为 FALSE。

备注

从 shell 打印或使用命令 ID ID_FILE_PRINT_DIRECT 完成打印时,通常会绕过“打印”对话框。

通常不会更改此成员,但如果确实要更改,请在调用 CView::DoPreparePrinting 之前重写 CView::OnPreparePrinting 来更改该成员。

CPrintInfo::m_bDocObject

包含一个标记,该标记指示正在打印的文档是否为 DocObject。

备注

数据成员 m_dwFlagsm_nOffsetPage 无效,除非此标记为 TRUE。

CPrintInfo::m_bPreview

包含一个标记,该标记指示是否正在预览文档。

备注

这是由框架设置的,具体取决于用户执行的命令。 打印预览作业不显示“打印”对话框。 m_bPreview 成员是 BOOL 类型的公共变量。

CPrintInfo::m_dwFlags

包含指定 DocObject 打印操作的标记组合。

注解

仅当数据成员 m_bDocObject 为 TRUE 时才有效。

该标记可以是如下一个或多个值:

  • PRINTFLAG_MAYBOTHERUSER

  • PRINTFLAG_PROMPTUSER

  • PRINTFLAG_USERMAYCHANGEPRINTER

  • PRINTFLAG_RECOMPOSETODEVICE

  • PRINTFLAG_DONTACTUALLYPRINT

  • PRINTFLAG_FORCEPROPERTIES

  • PRINTFLAG_PRINTTOFILE

CPrintInfo::m_lpUserData

包含指向用户创建的结构的指针。

注解

可使用此项来存储不希望存储在视图类中的打印特定数据。 m_lpUserData 成员是 LPVOID 类型的公共变量。

CPrintInfo::m_nCurPage

包含当前页的页码。

备注

该框架为文档的每一页调用一次 CView::OnPrepareDCCView::OnPrint,每次为该成员指定不同的值;其值的范围从 GetFromPage 返回的值到 GetToPage 返回的值。 重写 CView::OnPrepareDCCView::OnPrint 以使用此成员来打印文档的指定页。

首次调用预览模式时,框架将读取此成员的值来确定应先预览文档的哪一页。 可重写 CView::OnPreparePrinting 来设置此成员的值,以在进入预览模式时保持用户当前在文档中的位置。 m_nCurPage 成员是 UINT 类型的公共变量。

CPrintInfo::m_nJobNumber

指示操作系统为当前打印作业分配的作业编号。

注解

如果作业尚未打印(即 CPrintInfo 对象是新构造的且尚未用于打印)或启动作业时出错,则此值可能为 SP_ERROR。

CPrintInfo::m_nNumPreviewPages

包含预览模式下显示的页数;可为 1 或 2。

注解

m_nNumPreviewPages 成员是 UINT 类型的公共变量。

CPrintInfo::m_nOffsetPage

包含组合 DocObject 打印作业中特定 DocObject 的第一页之前页数。

CPrintInfo::m_pPD

包含指向 CPrintDialog 对象(用于显示打印作业的“打印”对话框)的指针。

备注

m_pPD 成员是声明为指向 CPrintDialog 的指针的公共变量。

CPrintInfo::m_rectDraw

以逻辑坐标指定页面的可用绘图区。

备注

你可能需要重写 CView::OnPrint 来引用此内容。 可使用此成员跟踪在打印页眉、页脚等后哪些区域仍可用。 m_rectDraw 成员是 CRect 类型的公共变量。

CPrintInfo::m_strPageDesc

包含用于在打印预览期间显示页码的格式字符串;此字符串由两个子字符串组成,一个用于单页显示,一个用于双页显示,每个子字符串都以“\n”字符结尾。

注解

框架使用“Page %u\nPages %u-%u\n”作为默认值。 如果需要其它格式的页码,请重写 CView::OnPreparePrinting 来指定格式字符串。 m_strPageDesc 成员是 CString 类型的公共变量。

CPrintInfo::SetMaxPage

调用此函数可指定文档最后一页的页码。

void SetMaxPage(UINT nMaxPage);

参数

nMaxPage
文档最后一页的页码。

注解

此值存储在 m_pPD 成员引用的 CPrintDialog 对象中。 如果在打印文档之前知道文档的长度,请重写 CView::OnPreparePrinting 来调用此函数。 如果文档的长度取决于用户在“打印”对话框中指定的设置,请重写 CView::OnBeginPrinting 来调用此函数。 如果在打印文档之前不知道文档的长度,请使用 m_bContinuePrinting 成员来控制打印循环。

示例

请参阅 CView::OnPreparePrinting 的示例。

CPrintInfo::SetMinPage

调用此函数可指定文档第一页的页码。

void SetMinPage(UINT nMinPage);

参数

nMinPage
文档第一页的页码。

备注

页码通常从 1 开始。 此值存储在 m_pPD 成员引用的 CPrintDialog 对象中。

另请参阅

MFC 示例 DIBLOOK
层次结构图
CView::OnBeginPrinting
CView::OnEndPrinting
CView::OnEndPrintPreview
CView::OnPrepareDC
CView::OnPreparePrinting
CView::OnPrint