在打印过程中改变打印方向,1页纵 2页横 3页纵。 WORD有这个功能,我在OnPrint()里调整
pDevMode->dmOrientation = DMORIENT_LANDSCAPE ; 不行啊,有其他办法吗?

解决方案 »

  1.   

    在OnFilePrint()里for (页)
    {
      进行页打印的准备<<在这里修改 比如 dmOrientation = DMORIENT_LANDSCAPE 
      OnPrint()
      打印机动作
    }
      

  2.   

    softist 说的靠点谱,不过我现在已经有一个比较成型的打印框架了,我也想过做成两次打印,先打横的,在重新发送一遍打印纵的,不过这样还是比较麻烦啊,
    还有没有更好的办法了?
      

  3.   

    >>softist 说的靠点谱
    谢谢表扬。
    打印是很麻烦的。
    事先要进行 按着每个页的打法计算页数 的工作。如果这个工作做得很轻松的话,改一下纵横并没有多大问题。因为MFC打印的那些程序都在一起,很容易找到应该修改哪里。
      

  4.   

    问题解决了,没动原来的打印框架OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) 
            if(pInfo && pDC->IsPrinting())
    {
    DEVMODE* pDevMode=pInfo->m_pPD->GetDevMode();
    if(pDevMode)
    {
    if(pInfo->m_nCurPage%2==0)
       pDevMode->dmOrientation=DMORIENT_LANDSCAPE;
    else 
       pDevMode->dmOrientation=DMORIENT_PORTRAIT;

    pDC->ResetDC(pDevMode);
    }
    }