CPr intInfo
CPrintInfo 没 有 基 类 。
CPrintInfo 存 储 有 关 一 次 打 印 或 打 印 预 览 作 业 的 信 息 。 每 次 选 择 Print 或 Print Preview 命 令 , 框 架 就 创 建 一 个 CPrintInfo 对 象 , 并 在 命 令 完 成 时 删 除 此 对 象 。
CPrintInfo 包 含 有 关 打 印 作 业 的 一 般 信 息 , 例 如 要 打 印 的 页 范 围 , 以 及 打 印 作业 的 当 前 状 态 , 例 如 当 前 正 打 印 的 页 。 某 些 信 息 存 放 在 一 个 相 关 联 的 CPrintInfo 对 象 中 ; 此 对 象 中 包 含 用 户 在 Print 对 话 框 中 输 入 的 值 。
在 打 印 期 间 , 一 个 CPrintInfo 对 象 在 框 架 和 应 用 程 序 的 视 类 之 间 传 递 , 并 用 于在 两 者 之 间 交 换 信 息 。 例 如 , 框 架 通 过 对 CPrintInfo 和 m_nCurPage 成 员 赋 值 , 来 通 知 视 类 要 打 印 文 档 的 哪 一 页 ; 视 类 检 取 此 值 , 并 执 行 指 定 页 的 实 际 打 印 。
另 一 个 例 子 就 是 文 档 的 长 度 直 到 打 印 时 也 不 知 道 的 情 况 。 在 这 种 情 况 下 , 视 类在 每 打 印 一 页 时 都 测 试 是 否 是 文 档 的 结 尾 了 。 当 到 达 文 档 结 尾 时 , 视 类 将CPrintInfo 的 m_bContinuePrinting 成 员 设 置 为 FALSE , 它 通 知 框 架 停 止 打 印 循环 。
CPrintInfo 由 “ 请 参 阅 ” 中 所 列 的 CView 的 成 员 函 数 调 用 。
请 参 阅 CView::OnBeginPrinting , CView::OnEndPrinting ,
CView::OnEndPrintPreview ,
CView ::OnPrepareDC , CView::OnPreparePrinting, CView::OnPrint
CPrintInfo 类 成 员
Dat a M ember s m_bDocObject 包 含 一 个 标 志 , 该 标 志 表 明 被 打 印 的 文 档 是 否 是
一 个 DocObject
m_dwFlags 指 定 DocObject 的 打 印 选 择
m_nOffsetPage 在 一 个 组 合 DocObject 打 印 作 业 中 指 定 一 个 特 别 的
DocObject 的 第 一 页 的 偏 移
m_pPD 包 含 一 个 指 针 , 该 指 针 指 向 用 于 Print 对 话 框 的
CPrintInfo 对 象
m_bDirect 包 含 一 个 标 志 , 该 标 志 表 明 是 否 直 接 打 印 这 个 文档 ( 不 显 示 Print 对 话 框 )
m_bPreview 包 含 一 个 标 志 , 该 标 志 表 明 是 否 预 览 文 档
m_bContinuePrinting 包 含 一 个 标 志 , 该 标 志 表 明 框 架 是 否 要 继 续 打 印
循 环
m_nCurPage 表 明 当 前 打 印 的 页 码
m_NumPreviewPages 表 明 在 预 览 窗 口 中 显 示 的 页 数 ; 1 或 者 2 m_lpUserData 包 含 一 个 指 针 , 该 指 针 指 向 一 个 用 户 创 建 的 结 构m_rectDraw 指 定 一 个 用 于 定 义 当 前 可 用 页 区 的 矩 形m_strPageDesc 包 含 一 个 用 于 页 码 显 示 的 格 式 字 符 串
Attribute s SetMinPage 设 置 文 档 第 一 页 的 页 码
SetMaxPage 设 置 文 档 最 后 一 页 的 页 码
GetMinPage 返 回 文 档 第 一 页 的 页 码
GetMaxPage 返 回 文 档 最 后 一 页 的 页 码
GetOffsetPage 返 回 在 一 次 组 合 DocObject 打 印 作 业 中 被 打 印 的
DocObject 项 的 第 一 页 前 面 的 页 数
GetFromPage 返 回 要 打 印 的 第 一 页 的 页 码
GetToPage 返 回 要 打 印 的 最 后 一 页 的 页 码
成 员 函 数
CPrintInfo::GetFromPage
UINT GetFromPage() const;
要 打 印 的 第 一 页 的 页 码 。
说 明
此 函 数 用 来 获 取 要 打 印 的 第 一 页 的 页 码 。 这 个 值 由 用 户 在 Print 对 话 框 中 指 定 , 存 放 在 由 m_pPD 成 员 引 用 的 CPrintInfo 对 象 中 。 如 果 用 户 没 有 指 定 这 个 值 , 则缺 省 的 是 文 档 的 第 一 页 。
请 参 阅 CPrintInfo::m_nCurPage , CPrintInfo::m_pPD , CPrintInfo::GetToPage
CPrintInfo::GetMaxPage
UINT GetMaxPage() const;
返 回 文 档 的 最 后 一 页 的 页 码 。
说 明
此 函 数 用 来 获 取 文 档 的 最 后 一 页 的 页 码 。 这 个 值 存 放 在 由 m _ pPD 成 员 所 引 用的 CPrin tD ialog 对 象 中 。
请 参 阅 CPrintInfo::m_nCurPage , CPrintInfo::m_pPD , CPrintInfo::GetMinPage , CPrintInfo::Set M axPage, CPrintInfo::Set M inPage
CPrintInfo::GetMinPage
UINT GetMinPage() cost;
返 回 文 档 第 一 页 的 页 码 。
说 明
此 函 数 用 来 获 取 文 档 第 一 页 的 页 码 。 这 个 值 存 放 在 由 m_pPD 所 引 用 的
CPrintDialog 对 象 中 。
请 参 阅 CPrintInfo::m_nCurPage , CPrintInfo::m_pPD , CPrintInfo::GetMaxPage, CPrintInfo::Set M axPage, CPrintInfo::Set M inPage
CPrintInfo::GetOffsetPage
UINT GetOffsetPage() const;
返 回 在 一 次 组 合 DocObject 打 印 作 业 中 被 打 印 的 DocObject 项 的 第 一 页 的 前 面的 页 数 。
说 明
当 从 一 个 DocObject 客 户 打 印 多 个 DocObject 项 时 , 此 函 数 用 来 获 取 偏 移 。 这个 值 由 m_nOffsetPage 成 员 引 用 。 当 要 打 印 的 是 DocObject 和 其 它 活 动 文 档 时 , 文 档 的 第 一 页 将 被 编 码 为 : m_nOffsetPage 值 + 1 。 只 有 在 m_bDocObject 的 值为 TRUE 时, m_nOffsetPage 成 员 才 是 有 效 的 。
请 参 阅 CPrintInfo::m_nOffsetPage, CPrintInfo::m_bDocObject
UINT GetToPage() const;
返 回 值
返 回 要 打 印 的 最 后 一 页 的 页 码 。
说 明
此 函 数 用 来 获 取 要 打 印 的 最 后 一 页 的 页 码 。 这 个 值 是 用 户 在 Print 对 话 框 中 指定 的 , 并 且 它 被 保 存 在 由 m_pPD 成 员 所 引 用 的 CPrintDialog 对 象 中 。 如 果 用 户没 有 指 定 这 个 值 , 则 缺 省 值 是 文 档 的 最 后 一 页 。
请 参 阅 CPrintInfo::m_nCurPage , CPrintInfo::m_pPD , CPrintInfo::GetFromPage
void SetMaxPage( UINT nMaxPage );
参 数
nMaxPage
文 档 最 后 一 页 的 页 码 。
说 明
此 函 数 用 来 指 定 文 档 最 后 一 页 的 页 码 。 这 个 值 保 存 在 由 m_pPD 所 引 用 的CPrintDialog 对 象 中 。 如 果 文 档 的 长 度 在 打 印 之 前 是 已 知 的 , 则 从 重 载 的CView::OnPreparePrinting 中 调 用 这 个 函 数 。 如 果 文 档 的 长 度 依 赖 于 用 户 在 Print 对 话 框 中 的 某 个 设 置 指 定 , 则 从 你 的 重 载 的 CView::OnBeginPrinting 中 调 用 这个 函 数 。 如 果 文 档 的 长 度 直 到 打 印 时 还 是 未 知 的 , 则 使 用 m_bContinuePrinting
成 员 来 控 制 打 印 循 环 。
请 参 阅 CPrintInfo::m_bContinuePrinting, CPrintInfo::m_nCurPage, CPrintInfo::m_pPD , CPrintInfo::GetMinPage , CPrintInfo::GetToPage , CPrintInfo::Set M inPage , CView::OnBeginPrinting ,
CView::OnPreparePrinting
CPrintInfo::SetMinPage
void SetMinPage( UINT nMinPage );
参 数
nMinPage
文 档 的 第 一 页 的 页 码 。
说 明
此 成 员 函 数 用 来 指 定 文 档 的 第 一 页 的 页 码 。 通 常 页 码 开 始 于 1 。 这 个 值 被 保 存在 由 m_pPD 成 员 所 引 用 的 CPrintDialog 对 象 中 。
请 参 阅 CPrintDialog::m_nCurPage , CPrintDialog::m_pPD ,
CPrintDialog::GetMaxPage ,
CPrin tInfo ::GetMinPage, CPrint Info ::Set M axPage
数 据 成 员
CPrintInfo::m_bContinuePrinting
说 明
此 数 据 成 员 包 含 了 一 个 标 志 , 该 标 志 用 来 表 明 框 架 是 否 继 续 进 行 打 印 循 环 。 如果 你 正 在 进 行 打 印 时 分 页 , 则 一 旦 已 到 达 文 件 尾 , 即 可 在 CView::OnPrepareDC 的 重 载 中 设 置 该 成 员 为 FALSE 。 如 果 应 用 程 序 已 经 在 打 印 作 业 开 始 时 用SetMaxPage 成 员 函 数 指 定 了 文 档 的 长 度 , 则 不 必 修 改 这 个 变 量 。m_bContinuePrinting 成 员 是 BOOL 类 型 的 公 有 变 量 。
请 参 阅 CPrintDialog::SetMaxPage , CView::OnPrepareDC
说 明
如 果 要 省 略 Print 对 话 框 直 接 进 行 打 印 , 则 框 架 将 此 成 员 设 置 为 TRU E ; 否 则 将其 设 置 为 FALSE 。 当 应 用 程 序 从 外 壳 进 行 打 印 , 或 打 印 是 通 过 使 用ID_FILE_PRINT_DIRECT 命 令 ID 进 行 时 , 通 常 Print 对 话 框 是 被 忽 略 的 。
通 常 来 说 , 你 不 会 改 变 这 个 成 员 , 但 如 果 你 要 改 变 它 , 则 在 你 的
CView::OnPreparePrinting 重 载 中 调 用 CView::DoPreparePrinting 之 前 改 变 它 。
请 参 阅 CView::DoPreparePrinting , CView::OnPreparePrinting
说 明
此 成 员 中 包 含 一 个 标 志 , 该 标 志 表 明 被 打 印 的 文 档 是 否 是 一 个 DocObject。 除非 这 个 标 志 是 TRU E , 否 则 数 据 成 员 m_dwFlags 和 m_nOffsetPage 是 无 效 的 。请 参 阅 CPrintInfo::m_dwFlag s, CPrintInfo::m_nOffsetPage
CPrintInfo::m_bPreview
说 明
此 成 员 包 含 一 个 标 志 , 该 标 志 表 明 文 档 是 否 正 在 预 览 。 这 个 标 志 的 值 由 框 架 根据 用 户 执 行 的 命 令 来 设 置 。 不 为 打 印 预 览 作 业 显 示 Print 对 话 框 。 m_bPreview 是 一 个 BOOL 类 型 的 公 有 变 量 。
CPrintInfo::m_dwFlags
说 明
此 成 员 包 含 一 些 标 志 的 组 合 , 这 些 标 志 指 定 了 DocObject 打 印 操 作 。 只 有 当 成员 m_bDocObject 是 TRUE 的 时 候 才 有 效 。
这 些 标 志 可 以 是 下 列 值 中 的 一 个 或 几 个 :
PRINTFLAG_MAYBOTHERUSER PRINTFLAG_PROMPT U SER PRINTFLAG_USERMAYCHANGEPRINTER PRINTFLAG_RECOMPOSETODEVICE PRINTFLAG_DONTACTUALLYPRINT PRINTFLAG_FORCEPROPERTIES PRINTFLAG_PRINTTOFILE
CPrintInfo::m_lpUserData
说 明
此 成 员 包 含 一 个 指 针 , 该 指 针 指 向 一 个 用 户 创 建 的 结 构 。 你 可 以 用 这 个 成 员 来保 存 那 些 你 不 想 保 存 在 你 的 应 用 程 序 的 视 类 中 的 打 印 专 用 数 据 。 m_lpUseData 成 员 是 LPVOID 类 型 的 公 有 变 量 。
CPrintInfo::m_nCurPage
说 明
此 成 员 包 含 当 前 页 的 页 码 。 框 架 为 文 档 的 每 一 页 调 用 CView::OnPripareDC 函
回 的 值 到 GetToPage 返 回 的 值 , 可 以 在 重 载 的 CView::OnPrepareDC 和
CView::OnPrint 函 数 中 使 用 这 个 成 员 来 打 印 文 档 的 指 定 页 。
当 预 览 方 式 第 一 次 被 激 活 时 , 框 架 读 出 此 成 员 的 值 来 确 定 初 始 时 预 览 文 档 的 哪一 页 。 应 用 程 序 可 在 重 载 的 CView::OnPreparePrinting 中 设 置 此 成 员 的 值 , 用 来在 进 入 预 览 方 式 时 维 护 用 户 在 文 档 中 的 当 前 位 置 。 m_nCurPage 成 员 是 UINT 类型 的 公 有 变 量 。
请 参 阅 CPrintInfo::GetFromPage , CPrintInfo::GetToPage ,
CView::OnPrepareDC ,
CView::OnPreparePrinting , CView::OnPrint
CPrintInfo::m_nNumPreviewPages
说 明
此 成 员 包 含 了 在 预 览 模 式 下 显 示 的 页 数 ,它 可 以 是 1 或 2 。m_nNumPreviewPages
成 员 是 UINT 类 型 的 公 有 变 量 。
请 参 阅 CPrintInfo::m_strPageDesc
CPrintInfo::m_nOffsetPage
说 明
此 成 员 包 含 在 一 个 组 合 的 DocObject 打 印 作 业 中 , 在 一 个 特 定 的 DocObject 的第 一 页 之 前 的 页 数 。
请 参 阅 CPrintInfo::m_bDocObject , CPrintInfo::m_dwFlags
CPrintInfo::m_pPD
说 明
此 成 员 中 包 含 一 个 指 向 CPrintDialog 对 象 的 指 针 , 这 个 CPrintDialog 对 象 用 于为 打 印 作 业 显 示 Print 对 话 框 。 m_pPD 成 员 是 一 个 声 明 为 CPrintDialog 指 针 的公 有 变 量 。
请 参 阅 CPrintDialog
CPrintInfo::m_rectDraw
说 明
此 成 员 指 定 页 的 可 用 绘 制 区 域 的 逻 辑 坐 标 。你 也 许 想 要 在 重 载 的 CView::OnPrint 中 引 用 该 成 员 。 应 用 程 序 可 以 使 用 这 个 成 员 来 记 录 当 打 印 完 头 、 尾 等 之 后 留 下的 可 用 区 域 。
请 参 阅 CView::OnPrint
CPrintInfo::m_strPageDesc
说 明
此 成 员 中 包 含 了 一 个 在 打 印 预 览 期 间 用 来 显 示 页 码 的 格 式 字 符 串 ; 这 个 字 符 串
由 两 个 子 串 组 成 ,一 个 用 于 单 页 显 示 ,一 个 用 于 双 页 显 示 ,每 个 子 串 用 一 个“ \n ” 字 符 结 尾 。 框 架 用 “ Page %u\nPages % u -%u\n ” 作 为 缺 省 值 。 如 果 应 用 程 序 想要 为 页 码 指 定 一 种 不 同 的 格 式 , 则 可 在 CView::OnPreparePrinting 的 重 载 中 指 定一 个 格 式 字 符 串 。 m_strPageDesc 成 员 是 CString 类 型 的 公 有 变 量 。
请 参 阅 CView::OnPreparePrinting