小弟的程序在打印一报表时要将默认的打印方式设置成横向打印,不知道该如何做,请各位大侠指点

解决方案 »

  1.   

    CPrintDialog dlgPrint(FALSE);
      //得到当前系统缺省打印机设置
      if(!dlgprint.GetDefau1ts() )return FALSE;
      LPDEVMODE pDM=dlgPrint.GetDevMode();
      if (pDM==NULL)return FALSE;
      //调整打印方向
      //pDM->dm0rientation=DMORIENT_LANDSCAPE(横向)‖
      DMORIENT_PORTRAIT(纵向);
      //调整纸张大小
      //制式纸张:pDM->dmPaperSize=DMPAPER_A3等;
      //或自定义大小:单位:1/10毫米
      //pDM->dmPaperSize=DMPAPER_USER;
      //pDM->dmPaperLength=纸张高度;
      //pDM->dmPaperWidth=纸张宽度;
      //解锁由CPrintDialog::GetDevMode()封锁的内存
      ::GlobalUn1ock(pDM);
      //联结打印DC,m_hDC是定义为HDC m_hDC的类成员变量
      m_hDC=dlgPrint.CreatePrinterDC();
      //m_DC是定义为CDC m_DC的类成员变量
      if (!m_DC.Attach(m_hDC)return FALSE;
      //设置打印廯 标志
      m_DC.m_bPrinting=TRUE;
      //根据打印机分辨率建立打印字体
      //得到每英寸点数
      short cxInch=m_DC.GetDeviceCaps(LOGPIXELSX);
      short cyInch=m_DC.GetDeviceCaps(LOGPIXELSY);
      

  2.   

    参见:
    http://community.csdn.net/Expert/topic/3189/3189013.xml?temp=.8195764