CDC::StartDoc
Informa o driver de dispositivo que está iniciando um novo trabalho de impressão e que todos os subseqüentes StartPage e EndPage chamadas devem ser colocada no spool sob o mesmo trabalho até uma EndDoc ocorre a telefonar.
int StartDoc(
LPDOCINFO lpDocInfo
);
int StartDoc(
LPCTSTR lpszDocName
);
Parâmetros
lpDocInfo
Aponta para um DOCINFO estrutura contendo o nome do arquivo de documento e o nome do arquivo de saída.lpszDocName
Ponteiro para uma seqüência de caracteres que contém o nome do arquivo de documento.
Valor de retorno
Se a função obtiver êxito, o valor retornado é maior que zero.Esse valor é o identificador do trabalho de impressão do documento.
Se a função falhar, o valor retornado é menor ou igual a zero.
Comentários
Isso garante que mais de uma página de documentos não serão ser intercalados com outros trabalhos.
Para Windows versões 3.1 e posteriores, essa função substitui o STARTDOC escape de impressora.Usar esta função garante que documentos que contêm mais de uma página não são intercalados com os outros trabalhos de impressão.
StartDoc não deve ser usado dentro de metarquivos.
Exemplo
Este fragmento de código obtém a impressora padrão, abre um trabalho de impressão e faz o spooling de uma página com "Hello, World!" nele.Porque o texto impresso por esse código não é dimensionado para unidades lógicas da impressora, o texto de saída pode estar em tais letras minúsculas que o resultado é ilegível.CDC dimensionamento funções, sistema autônomo 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