就是在打印预览中加一个按钮,按下一次后纸张就变成横向,再按一下,纸张就变成竖向

解决方案 »

  1.   

    另外,要在PRINT PRVEIEW中改变页边距的大小,象EXCEL一样
      

  2.   

    得修改MFC类库的打印预览代码!我单位的就是这么解决的!
      

  3.   

    在OnPrepareDC中对目标页调用pDC->Offsetviewport();即可改变页边距
      

  4.   

    void EkChangePrintingOrientation( CDC* pDC, CPrintInfo* pInfo, short NewOrientation )
    {
    ASSERT_VALID( pDC );
    ASSERT( pInfo != NULL ); DEVMODE* pDevMode = pInfo->m_pPD->GetDevMode(); // Only change if new orientation is different 
    if( pDevMode->dmOrientation != NewOrientation )
    {
    pDevMode->dmOrientation = NewOrientation;
    pDC->ResetDC( pDevMode );
    }
    }void CDrawView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) 
    {
    // Programatically force the page's orientation
    if( pInfo != NULL )
    {
    // Find out the orientation we want: every third page
    // will print in "landscape" mode
    BOOL bLandscape = ( ( pInfo->m_nCurPage % 3 ) == 0 );
    short NewOrientation = bLandscape ? DMORIENT_LANDSCAPE : DMORIENT_PORTRAIT; EkChangePrintingOrientation( pDC, pInfo, NewOrientation );
    } CView::OnPrepareDC(pDC, pInfo); pDC->SetMapMode( MM_LOMETRIC );
    }
    这是“MFC经典问答”上的例子
      

  5.   

    参考:http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=186073