VC中设置打印默认方向

转载 2006年05月29日 17:16:00

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

相关文章推荐

Unity3D研究院之设置自动旋转屏幕默认旋转方向

如下图所示,在处理屏幕默认旋转方向的时候可以在这里进行选择,上下左右一共是4个方向。 策划的需求是游戏采用横屏,但是要求支持两个方向自动旋转,如下图所示,我的设置是这样的。 Default Orien...

cocos2d 设置屏幕默认方向

在cocos2d创建的新工程运行结果屏幕都是横向,控制代码 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrient...

VC 方向键消息处理

  • 2011年11月22日 18:04
  • 4.08MB
  • 下载

从C++起步到MFC实战VC++软件工程师高端培训(服务器端开发方向)学习课程

从C++起步到MFC实战VC++软件工程师高端培训(服务器端开发方向)学习课程 主要内容: 本部分是您成为VC++软件工程师必备的阶段,如果您没有任何基础,学习C++能快速...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC中设置打印默认方向
举报原因:
原因补充:

(最多只允许输入30个字)