我想用程序更改纸张方向和选择纸张大小怎么实现?谢谢!

解决方案 »

  1.   

    /* 设置系统打印模式       
    #define DMORIENT_PORTRAIT   1   //纵向
    #define DMORIENT_LANDSCAPE  2   //横向                                      */
    /************************************************************************/void SetLandscapeMode(int PrintMode)
    {
    PRINTDLG pd;
    pd.lStructSize=(DWORD)sizeof(PRINTDLG);
    BOOL bRet=AfxGetApp()->GetPrinterDeviceDefaults(&pd);
    if(bRet)
    {
    // protect memory handle with ::GlobalLock and ::GlobalUnlock
    DEVMODE FAR *pDevMode=(DEVMODE FAR *)::GlobalLock(pd.hDevMode);
    // set orientation to landscape
    if(PrintMode==1)//纵向打印
    pDevMode->dmOrientation=DMORIENT_PORTRAIT;
    else if(PrintMode==2)//横向打印
    pDevMode->dmOrientation=DMORIENT_LANDSCAPE;   
    ::GlobalUnlock(pd.hDevMode);
    }
    }pDevMode的其它成员变量可以控制纸张大小
      

  2.   

    同意 bluebohe(薄荷) 朋友的看法。