看看深入浅出MFC啊!这里怎么教你?

解决方案 »

  1.   

    http://www.vckbase.com/sourcecode/
    打印。能回家过年?无限羡慕当中..........
      

  2.   

    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) ;
           }