CDC::StartDoc
Сообщает, что драйвер устройства запускается новое задание печати и все последующие StartPage и вызовы EndPage должны быть намотаны под одним заданием, пока вызов EndDoc не произойдет.
int StartDoc(
LPDOCINFO lpDocInfo
);
int StartDoc(
LPCTSTR lpszDocName
);
Параметры
lpDocInfo
Указатель на структуру DOCINFO, содержащая имя файла документа и имя выходного файла.lpszDocName
Указатель на строку, содержащую имя файла документа.
Возвращаемое значение
Если функция завершается успешно, то возвращаемое значение больше нуля.Это значение представляет идентификатор задания печати документа.
Если функция завершается неудачей, то возвращаемое значение меньше или равно нулю.
Заметки
Это гарантирует, что документы больше времени, чем одной страницы не будут interspersed с другими заданиями.
В версии 3.1 и более поздних версий Windows, эта функция заменяет избежать принтера STARTDOC.С помощью этой функции гарантирует, что документы, содержащие более одной страницы interspersed с другими заданиями печати.
StartDoc не должно использоваться внутри метафайлов.
Пример
Этот фрагмент кода возвращает используемый по умолчанию принтер, открывается задание печати и spool одна страница "hello, world!" в нем.Поскольку текст напечатанное этим кодом не масштабироватьо к логическим модули принтера, выходной текст может быть в том, что результат нечитабелен небольшая буквами.Масштабирование CDC действует, как SetMapMode, SetViewportOrg и SetWindowExt, можно использовать для сохранения масштабирование.
void CDCView::DoStartDoc()
{
// get the default printer
CPrintDialog dlg(FALSE);
dlg.GetDefaults();
// is a default printer set up?
HDC hdcPrinter = dlg.GetPrinterDC();
if (hdcPrinter == NULL)
{
MessageBox(_T("Buy a printer!"));
}
else
{
// create a CDC and attach it to the default printer
CDC dcPrinter;
dcPrinter.Attach(hdcPrinter);
// call StartDoc() to begin printing
DOCINFO docinfo;
memset(&docinfo, 0, sizeof(docinfo));
docinfo.cbSize = sizeof(docinfo);
docinfo.lpszDocName = _T("CDC::StartDoc() Code Fragment");
// if it fails, complain and exit gracefully
if (dcPrinter.StartDoc(&docinfo) < 0)
{
MessageBox(_T("Printer wouldn't initalize"));
}
else
{
// start a page
if (dcPrinter.StartPage() < 0)
{
MessageBox(_T("Could not start page"));
dcPrinter.AbortDoc();
}
else
{
// actually do some printing
CGdiObject* pOldFont = dcPrinter.SelectStockObject(SYSTEM_FONT);
dcPrinter.TextOut(50, 50, _T("Hello World!"), 12);
dcPrinter.EndPage();
dcPrinter.EndDoc();
dcPrinter.SelectObject(pOldFont);
}
}
}
}
Требования
Header: afxwin.h