好像可以在类CPrintDialog类里面设置!

解决方案 »

  1.   

    http://www.vckbase.com/code/listcode.asp?mclsid=5&sclsid=511
      

  2.   

    参考:
    BOOL CMyDialog::DoPreparePrintDC() //准备打印场景
    {
      #define FONTSIZE 14
      //获取打印机的设备属性
      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);
      //建立打印字体,m_fontPrint是定义为CFont m_fontPrint的类成员变量
      if(!m_fontPrint.CreateFont(MulDiv(FONTSIZE,-cyInch,
    72),
      0,0,0,FW_NORMAL,0,0,0,
      GB2312_CHARSET,OUT_CHARACTER_PRECIS,CLIP_CHA
    RACTER_PRECIS,
      DEFAULT_QUALITY,DEFAULT_PITCH|FF—DONTCARE,HFONTNAME)
      return FALSE;
      return TRUE;
    }