高分求助一个关于MFC打印预览的功能
最近做了一个图片处理工程,工程中需要实现打印和打印预览。目前已实现打印功能,可是打印预览功能一直无法实现。求助。
打印出来的文件中不仅有显示区所显示的图片,还会在图片的旁边附上一些色块说明、文字说明等内容。
关于打印的部分代码如下:
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里面的方法,也参考了一些网上的代码,现在的问题是如何让打印预览的框架知道我要输出到打印机上的内容是什么(包括图片内容、纸张大小、纵横设置等等),简单说,就是用打印机打印出什么样子,预览就应该是什么样子。
求助!谢谢!