打印预览的下一页怎么不管用啊?或者这个下一页是在那个函数里相应的啊?是void CReadFileView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)?

解决方案 »

  1.   

    VC++对话框程序打印及打印预览的实现方法 在第二个类CMyView的函数OnPreparePrinting中添加定义页面大小的程序,我们将此函数修改如下:
    BOOL CPrintView::OnPreparePrinting(CPrintInfo* pInfo) 

        PRINTDLG pd;  //该结构包含打印对话框中的所有信息 
        CPrintDialog m_PrintDlg(FALSE); 
        HDC m_hDC;  
        m_hDC=m_PrintDlg.CreatePrinterDC(); 
        LPDEVMODE  lpDevMode;  
        if(AfxGetApp()->GetPrinterDeviceDefaults(&pd)) //获得默认的打印机的信息 
        { 
            lpDevMode=(LPDEVMODE)GlobalLock(pd.hDevMode);  
            if(lpDevMode) 
            {    
                lpDevMode->dmFields |= DM_ORIENTATION ; //0x00000001L; 
                lpDevMode->dmFields |=DM_PAPERSIZE;    // 0x00000002L; 
                lpDevMode->dmFields |=DM_PAPERLENGTH ; //0x00000007L; 
                lpDevMode->dmFields |= DM_PAPERWIDTH ;
                lpDevMode->dmPaperSize=DMPAPER_USER;/将打印纸设置为A4   DMPAPER_A4 
                lpDevMode->dmOrientation=1将打印机设置为横向打印。DMORIENT_LANDSCAPE 
                lpDevMode->dmPaperWidth =1900; 
                lpDevMode->dmPaperLength =700; 
                HDC i=ResetDC(m_hDC,lpDevMode); 
            } 
            GlobalUnlock(pd.hDevMode); 
        } 
        pInfo->SetMaxPage(10); 
        return DoPreparePrinting(pInfo); 
    }
      

  2.   

    我说的是SDI啊,默认的有打印和打印预览,但要坐标转换一下,