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
对象在框架和视图类之间传递,用于在两者之间交换信息。 例如,框架通过向 CPrintInfo
的 m_nCurPage
成员赋值来通知视图类要打印文档的哪个页面;视图类检索值并执行指定页面的实际打印。
另一个示例是文档长度在打印之前是未知的。 在这种情况下,每打印一页,视图类都会测试文档的末尾。 到达末尾时,视图类将 CPrintInfo
的 m_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_dwFlags
和 m_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::OnPrepareDC
和 CView::OnPrint
,每次为该成员指定不同的值;其值的范围从 GetFromPage
返回的值到 GetToPage
返回的值。 重写 CView::OnPrepareDC
和 CView::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