CDC::StartDoc
Informa o driver de dispositivo que um novo trabalho de impressão está inicial e que qualquer StartPage e chamadas subseqüentes de EndPage devem ser rolados nos mesmos trabalho até que uma chamada de EndDoc ocorra.
int StartDoc(
LPDOCINFO lpDocInfo
);
int StartDoc(
LPCTSTR lpszDocName
);
Parâmetros
lpDocInfo
Pontos a estrutura de DOCINFO que contém o nome do arquivo de documento e o nome do arquivo de saída.lpszDocName
Ponteiro para uma cadeia de caracteres que contém o nome do arquivo de documento.
Valor de retorno
Se a função for bem sucedida, o valor de retorno é maior que zero. Esse valor é o identificador de trabalho de impressão para o documento.
Se a função falhar, o valor de retorno é menor ou igual a zero.
Comentários
Isso garante que os documentos de uma página não são intercalados mais tempo com outros trabalhos.
Para versões do windows 3,1 e posterior, essa função substitui o escape de impressora de STARTDOC . Usar essa função garante que os documentos que contêm mais de uma página não são intercalados com outros trabalhos de impressão.
StartDoc não deve ser usado dentro de gráficos.
Exemplo
O fragmento de código a seguir obtém a impressora padrão, abre um trabalho de impressão, e spoois uma página com “hello, world!” em ele. Porque o texto impresso por esse código não é dimensionado para unidades lógicas da impressora, o texto de saída pode ser em tais letras pequenas que o resultado é ilegível. A escala de CDC funciona, como SetMapMode, SetViewportOrg, e SetWindowExt, pode ser usado para corrigir o dimensionamento.
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);
}
}
}
}
Requisitos
Cabeçalho: afxwin.h