void CMyDialog::OnPrintBuf()
{
char pbuf[100] = "Hello World.";
HDC hdcPrn ; // Instantiate a CPrintDialog.
CPrintDialog *printDlg =
new CPrintDialog(FALSE, PD_ALLPAGES | PD_RETURNDC, NULL); // Initialize some of the fields in PRINTDLG structure.
printDlg->m_pd.nMinPage = printDlg->m_pd.nMaxPage = 1;
printDlg->m_pd.nFromPage = printDlg->m_pd.nToPage = 1; // Display Windows print dialog box.
printDlg->DoModal(); // Obtain a handle to the device context.
hdcPrn = printDlg->GetPrinterDC();
if (hdcPrn != NULL)
{
CDC *pDC = new CDC;
pDC->Attach (hdcPrn); // attach a printer DC pDC->StartDoc("test"); // begin a new print job
// for Win32 use
// CDC::StartDoc(LPDOCINFO) override pDC->StartPage(); // begin a new page
SetPrintAlign(pDC, hdcPrn);// set the printing alignment
pDC->TextOut(10, 10, pbuf);// write the string in pbuf
pDC->EndPage(); // end a page pDC->EndDoc(); // end a print job pDC->Detach(); // detach the printer DC
delete pDC;
} delete printDlg;
} void CMyDialog::SetPrintAlign(CDC *pDC, HDC hdcPrn)
{
short cxPage, cyPage; cxPage = ::GetDeviceCaps (hdcPrn, HORZRES) ;
cyPage = ::GetDeviceCaps (hdcPrn, VERTRES) ;
pDC->SetMapMode (MM_ISOTROPIC) ;
pDC->SetWindowExt ( 1000, 1000) ;
pDC->SetViewportExt (cxPage / 2, -cyPage / 2) ;
pDC->SetViewportOrg (cxPage / 2, cyPage / 2) ;
pDC->SetTextAlign (TA_BASELINE | TA_CENTER) ;
}
{
char pbuf[100] = "Hello World.";
HDC hdcPrn ; // Instantiate a CPrintDialog.
CPrintDialog *printDlg =
new CPrintDialog(FALSE, PD_ALLPAGES | PD_RETURNDC, NULL); // Initialize some of the fields in PRINTDLG structure.
printDlg->m_pd.nMinPage = printDlg->m_pd.nMaxPage = 1;
printDlg->m_pd.nFromPage = printDlg->m_pd.nToPage = 1; // Display Windows print dialog box.
printDlg->DoModal(); // Obtain a handle to the device context.
hdcPrn = printDlg->GetPrinterDC();
if (hdcPrn != NULL)
{
CDC *pDC = new CDC;
pDC->Attach (hdcPrn); // attach a printer DC pDC->StartDoc("test"); // begin a new print job
// for Win32 use
// CDC::StartDoc(LPDOCINFO) override pDC->StartPage(); // begin a new page
SetPrintAlign(pDC, hdcPrn);// set the printing alignment
pDC->TextOut(10, 10, pbuf);// write the string in pbuf
pDC->EndPage(); // end a page pDC->EndDoc(); // end a print job pDC->Detach(); // detach the printer DC
delete pDC;
} delete printDlg;
} void CMyDialog::SetPrintAlign(CDC *pDC, HDC hdcPrn)
{
short cxPage, cyPage; cxPage = ::GetDeviceCaps (hdcPrn, HORZRES) ;
cyPage = ::GetDeviceCaps (hdcPrn, VERTRES) ;
pDC->SetMapMode (MM_ISOTROPIC) ;
pDC->SetWindowExt ( 1000, 1000) ;
pDC->SetViewportExt (cxPage / 2, -cyPage / 2) ;
pDC->SetViewportOrg (cxPage / 2, cyPage / 2) ;
pDC->SetTextAlign (TA_BASELINE | TA_CENTER) ;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货