关于VC++.net下的JPG格式图像打印!

54783szg 2004-02-25 10:43:39
我的程序的VIEW是Class CBjeepsView : public CFormView这样的,最好是我给出图像的路径就可以在按钮点击状态下打印出来的!在线等待,立即结账!
...全文
43 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lionqun 2004-03-30
  • 打赏
  • 举报
回复
void CBjeepsView::OnDraw(CDC* pDC)
{
CBjeepsDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
// pDC->SetMapMode(MM_LOMETRIC);

CRect rect;
if(pDC->IsPrinting()) {
rect=m_rcPrint;
pDC->DPtoLP(&rect);
CSize sizeDib=m_dibfile.GetDimensions();
int w,h;
if (col==0||row==0) return;
w = (pwidth-400)/col-100;
h = (phigh-400)/row -100;
if(sizeDib.cx/sizeDib.cy >= w/h){
sizeDib.cy=-((w*sizeDib.cy)/sizeDib.cx);
sizeDib.cx=w;
}
else{
sizeDib.cx=((h*sizeDib.cx)/sizeDib.cy);
sizeDib.cy=-h;
}
sizeDib.cy *= pDC->GetDeviceCaps(LOGPIXELSX)/pDC->GetDeviceCaps(LOGPIXELSY);
int r,c,x,y,dibi;
for(r=0;r<row;r++){
y=(rect.top-200)-r*(h+100);
for(c=0;c<col;c++){
dibi=r*col+c;
if (dibi+pOff*row*col>=maxi) break;
x=(rect.left+200)+c*(w+100);
// pDC->Rectangle(x,y,x+w,y-h);
m_dibfile.Draw(pDC,CPoint(50, -5),sizeDib);//10,-100为打印的起如坐标;
}
}
}
else{
pDC->SetMapMode(MM_TEXT);
GetClientRect(&rect);
pDC->DPtoLP(&rect);
if (maxi>0&&i>=0&&i<maxi){
CSize sizeFileDib=m_dibfile.GetDimensions();
if (sizeFileDib.cx>=sizeFileDib.cy){
sizeFileDib.cy*=(rect.Width()/sizeFileDib.cx);
sizeFileDib.cx= rect.Width();
}
else{
sizeFileDib.cx*=(rect.Height()/sizeFileDib.cy);
sizeFileDib.cy= rect.Height();
}
m_dibfile.Draw(pDC,CPoint(0, 0),sizeFileDib);
}
else AfxMessageBox("请先打开要打印的文件!");
//pDC->TextOut(200, 200, "请选文件/打开文件,打开BMP图片。");
}
}

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧