打印预览的API代码无非就是一些GDI函数的使用罢了将各种信息显示在一个窗口中,只不过你自己要控制确保预览出的效果与打印效果一致(其实只是DC不同罢了)。

解决方案 »

  1.   

    看看CDC::StartDoc(应该就是这个名字,记不太清楚了)
      

  2.   

    那个好像中只是打印呀 CDC dc;
    CPrintDialog printDlg( FALSE ); if( printDlg.DoModal() != IDOK )             // Get printer settings from user
    return;
    else
    {
    dc.Attach( printDlg.GetPrinterDC() );         // attach a printer DC
    dc.m_bPrinting = TRUE; CString strTitle;
    strTitle.LoadString( AFX_IDS_APP_TITLE ); DOCINFO di;                                 // Initialise print doc details
    memset( &di, 0, sizeof(DOCINFO) );
    di.cbSize = sizeof( DOCINFO );
    di.lpszDocName = strTitle; BOOL bPrintingOK = dc.StartDoc( &di );        // Begin a new print job CPrintInfo Info;
    Info.m_rectDraw.SetRect( 0, 0, dc.GetDeviceCaps(HORZRES), dc.GetDeviceCaps(VERTRES) ); OnBeginPrinting( &dc, &Info );                // Initialise printing
    for( UINT page = Info.GetMinPage(); page <= Info.GetMaxPage() && bPrintingOK; page++ )
    {
    dc.StartPage();                         // begin new page
    Info.m_nCurPage = page;
    OnPrint( &dc, &Info );                    // Print page
    bPrintingOK = (dc.EndPage() > 0);       // end page
    }
    OnEndPrinting( &dc, &Info );                  // Clean up after printing if( bPrintingOK )
    dc.EndDoc();                            // end a print job
    else
    dc.AbortDoc();                          // abort job. dc.Detach();                                // detach the printer DC
    }
      

  3.   

    你可以照MFC的思路啊,把用MFC类的地方全换成SDK就是了因为MFC是SDK的一个封装~~~~~
      

  4.   

    呵呵,你真想知道看一下MFC源代码不就OK了。