您的位置:首页 > 其它

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

2006-08-15 17:32 323 查看

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);


*/







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: