现在问题是有一图形 彩色喷墨能打,但激打不行??不知道什么原因?代码如下:
void CRzbxUsbView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
// use Textmappingmode, that's easiest to map the fontsize
pDC->SetMapMode(MM_TEXT);
// setup font specifics
LOGFONT LogFont;
CFont aFont, *oldFont;
LogFont.lfHeight = -MulDiv(11, pDC->GetDeviceCaps(LOGPIXELSY), 72);
LogFont.lfWidth = 0;
LogFont.lfEscapement = 0;
LogFont.lfOrientation = 0;
LogFont.lfWeight = 0;
LogFont.lfItalic = false;
LogFont.lfUnderline = 0;
LogFont.lfStrikeOut = 0;
LogFont.lfCharSet = ANSI_CHARSET;
LogFont.lfOutPrecision = OUT_TT_PRECIS;
LogFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
LogFont.lfQuality = DEFAULT_QUALITY;
LogFont.lfPitchAndFamily = DEFAULT_PITCH | FF_SWISS;
lstrcpy (LogFont.lfFaceName, "宋体");
aFont.CreateFontIndirect ( &LogFont );
oldFont = pDC->SelectObject( &aFont );
//print title
if(nCfgDyfx == 1)
y=100;
else if(nCfgDyfx == 0)
y = 0;
else
y = 0;
PrintTitle(pDC,&y,pInfo);
OnDraw(pDC);
y+=nDrawHeight-5;
if(nAcqCurveNo>1)
// PrintCorrPara(pDC,&y,pInfo);
PrintRxy(pDC,&y,pInfo);
//print transformer name plate
PrintTransNamePlate(pDC,&y,pInfo);
y+=m_nPrintCharHeight;
//print test setting
for(int i=1;i<=nAcqCurveNo;i++)
{
PrintTestSet(pDC,&y,pInfo,i);
}
// PrintConclusion(pDC,&y,pInfo);
PrintPageFooter(pDC,pInfo); pDC->SelectObject(oldFont);
}
void CRzbxUsbView::OnDraw(CDC* pDC)
{
CRzbxUsbDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc); CBitmap *pOldBitmap=m_pMemDC->SelectObject(m_pBitmap);
if(pDC->IsPrinting())
{
// double ratio=nPrintPageWidth/rect.Width();
if(nCfgDyfx==1)
{
nDrawHeight=(int)(nPrintPageWidth*1.5*rect.Height()/rect.Width());
}
else
{
nDrawHeight=(int)(nPrintPageWidth*0.75*rect.Height()/rect.Width());
}
pDC->StretchBlt(nPrnLeftBorder,y,(int)(nPrintPageWidth*rect.Width()/rect.Width()),nDrawHeight,m_pMemDC,0,0,rect.Width()-2,rect.Height()-2,SRCCOPY);
}
else
pDC->BitBlt(rect.left,rect.top,rect.Width(),rect.Height(),m_pMemDC,0,0,SRCCOPY);
m_pMemDC->SelectObject(pOldBitmap);
}
void CRzbxUsbView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
// use Textmappingmode, that's easiest to map the fontsize
pDC->SetMapMode(MM_TEXT);
// setup font specifics
LOGFONT LogFont;
CFont aFont, *oldFont;
LogFont.lfHeight = -MulDiv(11, pDC->GetDeviceCaps(LOGPIXELSY), 72);
LogFont.lfWidth = 0;
LogFont.lfEscapement = 0;
LogFont.lfOrientation = 0;
LogFont.lfWeight = 0;
LogFont.lfItalic = false;
LogFont.lfUnderline = 0;
LogFont.lfStrikeOut = 0;
LogFont.lfCharSet = ANSI_CHARSET;
LogFont.lfOutPrecision = OUT_TT_PRECIS;
LogFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
LogFont.lfQuality = DEFAULT_QUALITY;
LogFont.lfPitchAndFamily = DEFAULT_PITCH | FF_SWISS;
lstrcpy (LogFont.lfFaceName, "宋体");
aFont.CreateFontIndirect ( &LogFont );
oldFont = pDC->SelectObject( &aFont );
//print title
if(nCfgDyfx == 1)
y=100;
else if(nCfgDyfx == 0)
y = 0;
else
y = 0;
PrintTitle(pDC,&y,pInfo);
OnDraw(pDC);
y+=nDrawHeight-5;
if(nAcqCurveNo>1)
// PrintCorrPara(pDC,&y,pInfo);
PrintRxy(pDC,&y,pInfo);
//print transformer name plate
PrintTransNamePlate(pDC,&y,pInfo);
y+=m_nPrintCharHeight;
//print test setting
for(int i=1;i<=nAcqCurveNo;i++)
{
PrintTestSet(pDC,&y,pInfo,i);
}
// PrintConclusion(pDC,&y,pInfo);
PrintPageFooter(pDC,pInfo); pDC->SelectObject(oldFont);
}
void CRzbxUsbView::OnDraw(CDC* pDC)
{
CRzbxUsbDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc); CBitmap *pOldBitmap=m_pMemDC->SelectObject(m_pBitmap);
if(pDC->IsPrinting())
{
// double ratio=nPrintPageWidth/rect.Width();
if(nCfgDyfx==1)
{
nDrawHeight=(int)(nPrintPageWidth*1.5*rect.Height()/rect.Width());
}
else
{
nDrawHeight=(int)(nPrintPageWidth*0.75*rect.Height()/rect.Width());
}
pDC->StretchBlt(nPrnLeftBorder,y,(int)(nPrintPageWidth*rect.Width()/rect.Width()),nDrawHeight,m_pMemDC,0,0,rect.Width()-2,rect.Height()-2,SRCCOPY);
}
else
pDC->BitBlt(rect.left,rect.top,rect.Width(),rect.Height(),m_pMemDC,0,0,SRCCOPY);
m_pMemDC->SelectObject(pOldBitmap);
}
前者可能存在兼容性问题,
尝试安装厂商最新驱动