请问在基于对话窗的程序里实现位图打印怎么做? 谁有代码?或者哪位高手说说啊,比较急,这个星期就要搞定了,还要考虑jpg的格式呢,不过现在我就先搞好bmp的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 StartPage()StartDoc()EndPage()PrintDlg()你参考一下这些函数api吧,我也没做过 跟显示差不多。1。先取得打印机的CDC或HDC。2。创建Mem DC。(CreateCompatibleDC(&dc))3。将CBitmap选入Mem DC。4。Bitblt(...)将Mem DC拷入打印机DC。 honglunxu() ,lazycat818(lazycat818):我现在也是这样做啊,但是只能显示textout和CDC里的画图函数,bitmap的好像没有load进去。而且,CDC画图的大小通过SetMapMode(MM_ANISOTROPIC)来建立坐标映射可以做到大小正常的,但是textout的字体特小。关于load CBitmap的方法我用了好几种了。有直接load一个资源的,有从硬盘load近来的,但是都不行。如果这个CDC用于显示的话,都可以正常Bitblt和StretchBlt,我试过了,但是用于打印就不行,非常郁闷。谁帮我解决了,我给200分啊。 我想的效果就是调用一个函数就可以打印一个指定的CBitmap,郁闷啊。 这是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); UDP传图片防止丢包 求MFC 二叉树图形界面打印!! goodboyws(深夜不眠者),再来看看 IE调用一个atl activex,但是不能够接收activex返回的事件!???? OnKeyDown中如何判断shift被按下了?? 高分!!如何得到某主机的操作系统类型? Grforce2Mx400怎么玩FIFA2002 ? 网吧游戏更新平台服务器端文件管理实现? 系统的注册表的信息的内容放在那些文件中? 求助求助!!!及时刷新视图问题 SetScrollRange(...)和SetScrollSizes(...)里的区别 socket为什么收不到数据,在线等,急!
StartDoc()
EndPage()
PrintDlg()
你参考一下这些函数api吧,我也没做过
2。创建Mem DC。(CreateCompatibleDC(&dc))
3。将CBitmap选入Mem DC。
4。Bitblt(...)将Mem DC拷入打印机DC。
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);