页面的信息可以通过对话框处理类的设备上下文获得。
CDC* pDC = CDC::FromHandle(hDC);
//获得打印页面宽度
int nHorzSize = pDC->GetDeviceCaps(HORZRES);
//获得打印页面高度
int nVertSize = pDC->GetDeviceCaps(VERTRES);
//获得物理页面宽度
int nWidth = pDC->GetDeviceCaps(PHYSICALWIDTH);
//获得物理页面高度
int nHeight = pDC->GetDeviceCaps(PHYSICALHEIGHT);
//获得左、右边距
int nOffsetX = pDC->GetDeviceCaps(PHYSICALOFFSETX);
//获得上、下边距
int nOffsetY= pDC->GetDeviceCaps(PHYSICALOFFSETY);
我们可以通过按钮控件的点击函数来查看效果。
- void CDemoDlg::OnTest()
- {
- //打印对话框
- DWORD dwFlags = PD_ALLPAGES | PD_USEDEVMODECOPIES | PD_NOPAGENUMS
- | PD_NOSELECTION | PD_HIDEPRINTTOFILE;
- CPrintDialog dlg(FALSE);
- if (dlg.DoModal() == IDOK)
- {
- //获得打印机DC
- HDC hDC = dlg.GetPrinterDC();
- if (hDC == NULL)
- {
- return;
- }
- //通过HDC获得CDC指针
- CDC* pDC = CDC::FromHandle(hDC);
- //获得打印页面宽度
- int nHorzSize = pDC->GetDeviceCaps(HORZRES);
- //获得打印页面高度
- int nVertSize = pDC->GetDeviceCaps(VERTRES);
- //获得物理页面宽度
- int nWidth = pDC->GetDeviceCaps(PHYSICALWIDTH);
- //获得物理页面高度
- int nHeight = pDC->GetDeviceCaps(PHYSICALHEIGHT);
- //获得左、右边距
- int nOffsetX = pDC->GetDeviceCaps(PHYSICALOFFSETX);
- //获得上、下边距
- int nOffsetY= pDC->GetDeviceCaps(PHYSICALOFFSETY);
- CString strText = _T("");
- strText.Format(_T("%s%d\n%s%d\n%s%d\n%s%d\n%s%d\n%s%d"),
- _T("打印页面宽度:"), nHorzSize,
- _T("打印页面高度:"), nVertSize,
- _T("物理页面宽度:"), nWidth,
- _T("物理页面高度:"), nHeight,
- _T("左右边距:"), nOffsetX,
- _T("上下边距:"), nOffsetY);
- AfxMessageBox(strText);
- }
- }
复制代码 上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例 经历1年的编程与录制点击进入查看
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
|