关闭

VC中设置打印默认方向

标签: null
1530人阅读 评论(0) 收藏 举报

转自 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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:22373次
    • 积分:339
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:4篇
    • 译文:0篇
    • 评论:10条
    最新评论
    编程代码库