MFC获取纸张大小

BOOL  CPrintView::GetPageSize(CSize &nRetVal)   // CPrintView 是自己创建的类
       {
          PRINTDLG FAR * pPrintDlg =  new  PRINTDLG;
          BOOL  bRet = FALSE;
 
       // Get the current printer's settings.
 
          if (AfxGetApp()->GetPrinterDeviceDefaults(pPrintDlg))
          {
 
       // Get pointers to the two setting structures.
 
             DEVNAMES FAR *lpDevNames =
             (DEVNAMES FAR *)::GlobalLock(pPrintDlg->hDevNames);
 
             DEVMODE FAR *lpDevMode =
             (DEVMODE FAR *)::GlobalLock(pPrintDlg->hDevMode);
 
       // Get the specific driver information.
 
             CString szDriver(( LPTSTR )lpDevNames +
                                  lpDevNames->wDriverOffset);
             CString szDevice(( LPTSTR )lpDevNames +
                                  lpDevNames->wDeviceOffset);
             CString szOutput(( LPTSTR )lpDevNames +
                                  lpDevNames->wOutputOffset);
 
       // Create a CDC object according to the current settings.
 
             CDC pDC;
             pDC.CreateDC(szDriver, szDevice, szOutput, lpDevMode);
 
       // Query this CDC object for the width and height of the current
       // page.
 
             /*static int*/  nRetVal.cx = pDC.GetDeviceCaps(HORZSIZE);
            /* static int*/  nRetVal.cy = pDC.GetDeviceCaps(VERTSIZE);
 
       // Get rid of the CDC object.
 
             pDC.DeleteDC();
 
       // Unlock the pointers to the setting structures.
 
             ::GlobalUnlock(pPrintDlg->hDevNames);
             ::GlobalUnlock(pPrintDlg->hDevMode);
 
           bRet = TRUE;
          }
        delete  pPrintDlg;
        return  bRet;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值