CDC::StartPage 是 MFC(Microsoft Foundation Classes)中的一个方法,用于开始打印作业的一页。在每次调用 StartPage 方法时,会开始打印新的一页,你可以在这一页上绘制图形和文本。

这个方法的原型如下:
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