获取默认打印机纸张的设置

CPrintDialog dlg(FALSE);

    
if  ( ! dlg.GetDefaults())
            AfxMessageBox(_T(
" You have no default printer! " ));
    
else
    
{
            
// attach to the DC we were given
            CDC dc;
            dc.Attach(dlg.m_pd.hDC);

            
// ask for the measurements
            int nHorz = dc.GetDeviceCaps(LOGPIXELSX);
            
int nVert = dc.GetDeviceCaps(LOGPIXELSY);

            
// almost always the same in both directions, but sometimes not!
            /*CString str;
            if (nHorz == nVert)
                str.Format(_T("Your printer supports %d pixels per inch"), nHorz);
            else
                str.Format(_T("Your printer supports %d pixels per inch ")
                    _T("horizontal resolution, and %d pixels per inch vertical ")
                    _T("resolution"), nHorz, nVert);
            
*/

            
// tell the user
            this->m_PageWidth = (float) dc.GetDeviceCaps(PHYSICALWIDTH)/nHorz;
            
this->m_PageHeight    = (float) dc.GetDeviceCaps(PHYSICALHEIGHT)/nVert;
            
            
/*
            AfxMessageBox(str);
            str.Format(_T("实际可打印的区域 width:%f   height:%f"),this->m_PageWidth,this->m_PageHeight);
            AfxMessageBox(str);
            
*/


            
this->m_MarginLeft  = (float) dc.GetDeviceCaps(PHYSICALOFFSETX)/nHorz;
            
this->m_MarginTop    = (float) dc.GetDeviceCaps(PHYSICALOFFSETY)/nVert;

            
/*str.Format(_T("可打印区的水平/垂直偏移 width:%f   height:%f"),this->m_MarginLeft,this->m_MarginTop);
            AfxMessageBox(str);
            
*/


            
this->m_PageActWidth    = (float) dc.GetDeviceCaps(HORZRES)/nHorz;
            
this->m_PageActHeight    = (float) dc.GetDeviceCaps(VERTRES)/nVert;


            
/*str.Format(_T("纸张大小 width:%f   height:%f"),this->m_PageActWidth,this->m_PageActHeight);
            AfxMessageBox(str);
            
*/


            
this->m_MarginRight        = this->m_PageWidth - this->m_MarginLeft - this->m_PageActWidth;
            
this->m_MarginBottom    = this->m_PageHeight- this->m_MarginTop  - this->m_PageActHeight;

            
/*
            str.Format(_T("纸张右边距,下边距 width:%f   height:%f"),this->m_MarginRight,this->m_MarginBottom);
            AfxMessageBox(str);
            
*/


            
            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值