VC中设置打印默认方向

转自 http://mywallop.com/Public.aspx?id=3564836&ty=ly

2种设置打印方向的方法.

1. 
CPrintInfo printInfo;
 AfxGetApp()->GetPrinterDeviceDefaults(&printInfo.m_pPD->m_pd);
 if (printInfo.m_pPD->m_pd.hDC == NULL)
 {
  // call CreatePrinterDC if DC was not created by above
  printInfo.m_pPD->CreatePrinterDC();
 }
 CDC dcPrint;
 dcPrint.Attach(printInfo.m_pPD->m_pd.hDC);  // attach printer dc
 dcPrint.m_bPrinting = TRUE;


 LPDEVMODE  pDevMode;
 pDevMode=printInfo.m_pPD->GetDevMode();
 if(pDevMode!=NULL)
 {
  pDevMode->dmOrientation=DMORIENT_LANDSCAPE;
  dcPrint.ResetDC(pDevMode);
 }

2.
void CMyApp::SetLandscapeMode()
{
   PRINTDLG pd;
   pd.lStructSize=(DWORD)sizeof(PRINTDLG);
   BOOL bRet=GetPrinterDeviceDefaults(&pd);
   if(bRet)
   {
      // protect memory handle with ::GlobalLock and ::GlobalUnlock
      DEVMODE FAR *pDevMode=(DEVMODE FAR *)::GlobalLock(m_hDevMode);
      // set orientation to landscape
      pDevMode->dmOrientation=DMORIENT_LANDSCAPE;
      ::GlobalUnlock(m_hDevMode);
   }
}
其实两种方法调用的应该都是基于方法2的.

转自 http://mywallop.com/Public.aspx?id=3564836&ty=ly

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值