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