请去http://topic.csdn.net/u/20090415/15/21375d69-f529-4ba2-8b21-1acd4787c49a.html拿分
我的工程左右视图,右视图是一个listbox,显示所有曲线的名字,点击其中一个曲线名,即可在左视图显示,然后就能进行打印。
但是:
我发现我打印出来的曲线虽然完整,但是没有充满整张纸,纸右边空白了1/5左右。
另外说明一点,我重载了OnPrepareDC函数,所以打印出来的曲线大小倒是合适的,请高手指点!
void CYuhtView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
// TODO: Add your specialized code here and/or call the base class
if(pDC->IsPrinting()) //横向打印
{
LPDEVMODE pDevMode;
pDevMode=pInfo->m_pPD->GetDevMode();
pDevMode->dmOrientation=DMORIENT_LANDSCAPE;
pDC->ResetDC(pDevMode);
} CView::OnPrepareDC(pDC, pInfo); long iLogPixelX=pDC->GetDeviceCaps(LOGPIXELSX);
long iLogPixelY=pDC->GetDeviceCaps(LOGPIXELSY); pDC->SetMapMode(MM_ANISOTROPIC); //转换坐标映射方式、确定窗口大小
CSize size = CSize(6000, 5000);
pDC->SetWindowExt(size);
int xLogPixPerInch = pDC->GetDeviceCaps(LOGPIXELSX); //得到实际设备每逻辑英寸的象素数量
int yLogPixPerInch = pDC->GetDeviceCaps(LOGPIXELSY);
long xExt = (long)size.cx *xLogPixPerInch/96; //得到设备坐标和逻辑坐标的比例
long yExt = (long)size.cy *yLogPixPerInch/96;
pDC->SetViewportExt((int)xExt, (int)yExt);
}
我的工程左右视图,右视图是一个listbox,显示所有曲线的名字,点击其中一个曲线名,即可在左视图显示,然后就能进行打印。
但是:
我发现我打印出来的曲线虽然完整,但是没有充满整张纸,纸右边空白了1/5左右。
另外说明一点,我重载了OnPrepareDC函数,所以打印出来的曲线大小倒是合适的,请高手指点!
void CYuhtView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
// TODO: Add your specialized code here and/or call the base class
if(pDC->IsPrinting()) //横向打印
{
LPDEVMODE pDevMode;
pDevMode=pInfo->m_pPD->GetDevMode();
pDevMode->dmOrientation=DMORIENT_LANDSCAPE;
pDC->ResetDC(pDevMode);
} CView::OnPrepareDC(pDC, pInfo); long iLogPixelX=pDC->GetDeviceCaps(LOGPIXELSX);
long iLogPixelY=pDC->GetDeviceCaps(LOGPIXELSY); pDC->SetMapMode(MM_ANISOTROPIC); //转换坐标映射方式、确定窗口大小
CSize size = CSize(6000, 5000);
pDC->SetWindowExt(size);
int xLogPixPerInch = pDC->GetDeviceCaps(LOGPIXELSX); //得到实际设备每逻辑英寸的象素数量
int yLogPixPerInch = pDC->GetDeviceCaps(LOGPIXELSY);
long xExt = (long)size.cx *xLogPixPerInch/96; //得到设备坐标和逻辑坐标的比例
long yExt = (long)size.cy *yLogPixPerInch/96;
pDC->SetViewportExt((int)xExt, (int)yExt);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货