The study of Programming Windows with MFC-printing tips

分手后的思念是犯贱 2022-07-12 14:16 301阅读 0赞

Using the Print Dialog’s Selection Button

pInfo->m_pPD->m_pd.Flags&~PD_NOSELECTED

pInfo->m_pPD->m_pd.Flags|PD_SELECTED

(PRINTDLG CPrintDialog::m_pd )

Adding Default Pagination Support

CSIZE size;

CPrintInfo pi;

if(AfxGetApp()->GetPrinterDeviceDefault(&pi.m_pPD->m_pd))

{

  1. HDC hDC=pi.m\_pPD->m\_pd;
  2. if(hDC==NULL)
  3. hDC=pi.m\_pPD->CreatePrinterDC();
  4. else
  5. \{
  6. CDC dc;
  7. dc.Attach(hDC);
  8. size.cx=dc.GetDeviceCaps(HORZRES);
  9. size.cy=dc.GetDeviceCaps(VERTRES);
  10. ::DeleteDC(dc.Detach());
  11. \}

}

Enumerating Printers

#include

  1. ![Image 1][]…

DWORD dwSize,dwPrinter;

::EnumPrinters(PRINT_ENUM_LOCAL,NULL,5,NULL,0,&dwSize,&dwPrinter);

BYTE *pBuffer=new BYTE[dwSize];

::EnumPrinters(PRINT_ENUM_LOCAL,NULL,5,pBuffer,dwSize,&dwSize,&dwPrinter);

if(dwPrinter!=0)

{

  1. PRINTER\_INFO\_5 \*pPrinter=(PRINTER\_INFO\_5\*)pBuffer; // in Windows NT or Windows 2000, use PRINTER\_INFO\_4 structures instead
  2. for(DWORD i=0;i<dwPrinter;i++)
  3. \{
  4. pComboBox->addString(i,pPrinter->pPrinterName);
  5. pPrinter++;
  6. \}

}

  1. ![Image 1][]…

//a printer selected from combobox and create printerdc

CString nStrPrinterName;

int nIndex=pComboBox->GetCurSel();

pComboBox->GetLBText(nIndex,nStrPrinterName);

CDC dc;

dc.CreateDC(NULL,nStrPrinterName,NULL,NULL);

[Image 1]:

发表评论

表情:
评论列表 (有 0 条评论,301人围观)

还没有评论,来说两句吧...

相关阅读