请问在基于对话窗的程序里实现位图打印怎么做?

on_shift 2003-08-20 11:06:00
谁有代码?
或者哪位高手说说啊,比较急,这个星期就要搞定了,还要考虑jpg的格式呢,不过现在我就先搞好bmp的。
...全文
35 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lazycat818 2003-08-23
  • 打赏
  • 举报
回复
跟显示差不多。

1。先取得打印机的CDC或HDC。
2。创建Mem DC。(CreateCompatibleDC(&dc))
3。将CBitmap选入Mem DC。
4。Bitblt(...)将Mem DC拷入打印机DC。
on_shift 2003-08-23
  • 打赏
  • 举报
回复
这是startpage后的代码,不知道为什么不能显示图片。

/************************************************************************/
CDC dcMem;

HBITMAP hbitmap;
CBitmap cbitmap;
hbitmap=(HBITMAP)LoadImage(NULL,"c:\\testbmp.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
cbitmap.Attach(hbitmap);
dcMem.CreateCompatibleDC(&dcPrinter);
dcMem.SelectObject(&cbitmap);

// HBITMAP m_hbmp;
// CBitmap bmpPrint;
// bmpPrint.LoadBitmap(IDB_BITMAP1); //m_hBmp???
// CBitmap* pBmp = (CBitmap*)dcMem.SelectObject(bmpPrint);
dcPrinter.BitBlt(0,0,1600,1600,&dcMem,0,0,SRCCOPY);
// dcPrinter.StretchBlt(0,0,600,600,&dcMem,0,0,320,240,SRCCOPY);
// dcPrinter.SelectObject(pBmp);
/************************************************************************/
dcPrinter.TextOut(50, 50, _T("Hello World!"), 12);
dcPrinter.MoveTo(50,50);
dcPrinter.LineTo(100,100);
dcPrinter.Ellipse(100,100,500,500);
dcPrinter.EndPage();
dcPrinter.EndDoc();
dcPrinter.SelectObject(pOldFont);
on_shift 2003-08-23
  • 打赏
  • 举报
回复
我想的效果就是调用一个函数就可以打印一个指定的CBitmap,郁闷啊。
on_shift 2003-08-23
  • 打赏
  • 举报
回复
honglunxu() ,lazycat818(lazycat818):

我现在也是这样做啊,但是只能显示textout和CDC里的画图函数,bitmap的好像没有load进去。而且,CDC画图的大小通过SetMapMode(MM_ANISOTROPIC)来建立坐标映射可以做到大小正常的,但是textout的字体特小。

关于load CBitmap的方法我用了好几种了。有直接load一个资源的,有从硬盘load近来的,但是都不行。如果这个CDC用于显示的话,都可以正常Bitblt和StretchBlt,我试过了,但是用于打印就不行,非常郁闷。

谁帮我解决了,我给200分啊。
honglunxu 2003-08-22
  • 打赏
  • 举报
回复
StartPage()
StartDoc()
EndPage()
PrintDlg()
你参考一下这些函数api吧,我也没做过
carbon107 2003-08-22
  • 打赏
  • 举报
回复
星期一好吗我正在做这个程序,思路就是一块一块的打印位图
on_shift 2003-08-22
  • 打赏
  • 举报
回复
难道没有人吗?快啊,分不够可以加啊。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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