高分求助一个关于MFC打印预览的功能

zhaolinger2 2010-12-22 01:21:25
最近做了一个图片处理工程,工程中需要实现打印和打印预览。目前已实现打印功能,可是打印预览功能一直无法实现。求助。
打印出来的文件中不仅有显示区所显示的图片,还会在图片的旁边附上一些色块说明、文字说明等内容。

关于打印的部分代码如下:

HDC hdc0;
......
TCHAR *pszdrive0, *pszdevice0;
DEVMODE *pdevmode0;
DEVNAMES *pdevnames0;
PRINTDLG stpd0;
memset(&stpd0, 0x0, sizeof(PRINTDLG));
stpd0.lStructSize = sizeof(PRINTDLG);
stpd0.hwndOwner = m_hWnd;
stpd0.Flags = PD_PRINTSETUP;
if(!::PrintDlg(&stpd0))//打印对话框
......//部分处理
pdevmode0 = (DEVMODE*)::GlobalLock(stpd0.hDevMode);
pdevnames0 = (DEVNAMES*)::GlobalLock(stpd0.hDevNames);
iPrintv = pdevmode0->dmOrientation;
pszdrive0 = (TCHAR*)pdevnames0;
pszdevice0 = (TCHAR*)pdevnames0;
pszdrive0 += pdevnames0->wDriverOffset;
pszdevice0 += pdevnames0->wDeviceOffset;
hdc0 = ::CreateDC(pszdrive0, pszdevice0, NULL, pdevmode0);//获得打印机DC
::GlobalUnlock(stpd0.hDevMode);
::GlobalUnlock(stpd0.hDevNames);
::GlobalFree(stpd0.hDevMode);
::GlobalFree(stpd0.hDevNames);
......
//后面用StretchDIBits等方法将显示区里的图片内容放到DC里去。



参考了CView里面的方法,也参考了一些网上的代码,现在的问题是如何让打印预览的框架知道我要输出到打印机上的内容是什么(包括图片内容、纸张大小、纵横设置等等),简单说,就是用打印机打印出什么样子,预览就应该是什么样子。

求助!谢谢!
...全文
92 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackyjkchen 2010-12-22
  • 打赏
  • 举报
回复
是不是尝试一下将预览区域保存成一个位图……

我也没做过……

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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