这个方法的原型如下:
int StartPage();
这个方法返回一个整数,表示页面的标识符,如果出现错误,则返回一个负值。
通常,你在调用 StartDoc 启动打印作业后,通过多次调用 StartPage 和 EndPage 来处理每一页的绘制。
示例代码如下:
CPrintDialog printDlg(FALSE);
if (printDlg.DoModal() == IDOK) // 如果用户点击了“打印”按钮
{
CDC dcPrint; // 用于打印的设备上下文
if (dcPrint.Attach(printDlg.GetPrinterDC())) // 获取打印机设备上下文
{
DOCINFO docInfo;
memset(&docInfo, 0, sizeof(DOCINFO));
docInfo.cbSize = sizeof(DOCINFO);
docInfo.lpszDocName = _T("MyPrintJob"); // 文档名称
int nJob = dcPrint.StartDoc(&docInfo); // 开始打印作业
if (nJob > 0)
{
// 打印作业已开始,进行打印操作
int nPage = dcPrint.StartPage(); // 开始打印新的一页
if (nPage > 0)
{
// 在这里绘制当前页的内容
dcPrint.EndPage(); // 结束当前页的打印
}
else
{
// 开始新页失败
AfxMessageBox(_T("Failed to start a new page."));
}
dcPrint.EndDoc(); // 结束打印作业
}
else
{
// 打印作业开始失败
AfxMessageBox(_T("Failed to start print job."));
}
dcPrint.Detach(); // 释放打印机设备上下文
}
else
{
// 无法获取打印机设备上下文
AfxMessageBox(_T("Failed to get printer DC."));
}
}
在这个示例中,首先通过打印对话框让用户选择打印机,然后获取打印机的设备上下文。接着,通过 StartDoc 方法开始打印作业,如果成功开始,则进行打印操作。在打印操作中,通过多次调用 StartPage 和 EndPage 处理每一页的绘制。最后,通过 EndDoc 方法结束打印作业。
转载请注明出处:http://www.zyzy.cn/article/detail/17219/MFC/CDC