vc对话框打印笔记
2016-12-07 16:16
260 查看
void CPrint2Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
// AfxMessageBox(“ddd”);
// CDC dc;
// dc.CreateDC(NULL,_T(“HP”),NULL,NULL);
// CPrintDialog dlg(FALSE);
// dlg.GetDefaults();
// if(dlg.DoModal()==IDOK)
// dc.Attach(dlg.GetPrinterDC());
}
bool bUserAbort;
BOOL CALLBACK AbortProc(HDC hDC,int nCode)
{
MSG msg;
// return TRUE;
return !bUserAbort;
}
OnPreparePrinting 设置打印参数
setMaxPage,弹出对话框,默认一页
OnBeginPrinting (CPrintInfo ,CDC ) 打印开始时。分配字体等资源GDI(WYSIWYG,字体基于打印机字体)
其中也可以确定打印区域的大小(GetDeviceCaps),和最大页.设定终止过程,禁用主窗口,弹出打印状态对话框。startDoc,
OnPrepareDC 每一页前 制定原点和OnDraw时的剪贴区域,CPrintInfo::m_nCurPage,要打印的页面。CDC::IsPrinting确定
当前是屏幕还是打印机。有时为NULL.设备与文档0,-y:viewport在设备中的坐标。CRgn::CreateRectRgn,CDC::SelectClipRgn
SetMapMode,SetScrollSize
CPrintInfo::m_bContinuePrinting=true(继续打印);false(结束打印)
OnDraw(屏幕and打印机) OnPrint 基类CScrollView::设置了视口原点与当前滚动位置匹配。
StartPage,OnPrepareDC
OnPrint (cdc,CprintInfo) 打印页眉,页编号等。打印时调用。或默认调用OnDraw(cdc).
比如:PrintHeader(pDC),PrintPageNumber(pDC,pInfo->m_nCurpage),viewport and clipping ,OnDraw(pDC);
EndPage,结束了吗?否,跳的OnPrepareDC.
是.EndDoc,启用主窗口。
OnEndPrinting 释放资源GDI
销毁打印状态对话框
CView::OnFilePrint
CView::OnFilePrintPreview 取代框架,并添加一个由CScrollView derived CPreviewView,add toolbox.OnDraw,被打印页的
矩形。设置比例参数。可打印区域和实际打印页匹配。调用OnPrint输出,cdc为preview窗口m_hDC,m_hAttribDC,供查询。
CView::OnEndPrintPreview OnEndPrinting 释放资源GDI,恢复窗口。CPrintInfo::m_bPreview,m_nNumPreviewPages页数。
Convert nPage into a scroll position in pt.
MM_TEXT,MM_LOMETRIC,
{
// TODO: Add your control notification handler code here
// AfxMessageBox(“ddd”);
// CDC dc;
// dc.CreateDC(NULL,_T(“HP”),NULL,NULL);
// CPrintDialog dlg(FALSE);
// dlg.GetDefaults();
// if(dlg.DoModal()==IDOK)
// dc.Attach(dlg.GetPrinterDC());
CDC dc; CPrintDialog dlg(FALSE); // CPrintDialog dlg(true); if(dlg.DoModal()==IDOK) { // AfxMessageBox("ddd"); dc.Attach(dlg.GetPrinterDC()); DOCINFO di; ::ZeroMemory(&di,sizeof(DOCINFO)); di.cbSize=sizeof(DOCINFO); di.lpszDocName=_T("Budget Figures for the Current Fiscal Year"); dc.SetAbortProc(AbortProc); bUserAbort=true; if(dc.StartDoc(&di)>0) { BOOL bContinue=TRUE; for(int i=1;i<=3&& bContinue;i++){ dc.StartPage(); // if(i==1) // bUserAbort=true; //print here dc.Ellipse(0,0,100,100); dc.TextOut(100,100,"ddddddddddddd"); CString c; c.Format("%d",i); dc.TextOut(100,110,c); if(dc.EndPage()<=0) bContinue=FALSE; } if(bContinue) dc.EndDoc(); else dc.AbortDoc(); } dc.DeleteDC(); }
}
bool bUserAbort;
BOOL CALLBACK AbortProc(HDC hDC,int nCode)
{
MSG msg;
while(!bUserAbort&& ::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE)) AfxGetThread()->PumpMessage();
// return TRUE;
return !bUserAbort;
}
OnPreparePrinting 设置打印参数
setMaxPage,弹出对话框,默认一页
OnBeginPrinting (CPrintInfo ,CDC ) 打印开始时。分配字体等资源GDI(WYSIWYG,字体基于打印机字体)
其中也可以确定打印区域的大小(GetDeviceCaps),和最大页.设定终止过程,禁用主窗口,弹出打印状态对话框。startDoc,
OnPrepareDC 每一页前 制定原点和OnDraw时的剪贴区域,CPrintInfo::m_nCurPage,要打印的页面。CDC::IsPrinting确定
当前是屏幕还是打印机。有时为NULL.设备与文档0,-y:viewport在设备中的坐标。CRgn::CreateRectRgn,CDC::SelectClipRgn
SetMapMode,SetScrollSize
CPrintInfo::m_bContinuePrinting=true(继续打印);false(结束打印)
OnDraw(屏幕and打印机) OnPrint 基类CScrollView::设置了视口原点与当前滚动位置匹配。
StartPage,OnPrepareDC
OnPrint (cdc,CprintInfo) 打印页眉,页编号等。打印时调用。或默认调用OnDraw(cdc).
比如:PrintHeader(pDC),PrintPageNumber(pDC,pInfo->m_nCurpage),viewport and clipping ,OnDraw(pDC);
EndPage,结束了吗?否,跳的OnPrepareDC.
是.EndDoc,启用主窗口。
OnEndPrinting 释放资源GDI
销毁打印状态对话框
CView::OnFilePrint
CView::OnFilePrintPreview 取代框架,并添加一个由CScrollView derived CPreviewView,add toolbox.OnDraw,被打印页的
矩形。设置比例参数。可打印区域和实际打印页匹配。调用OnPrint输出,cdc为preview窗口m_hDC,m_hAttribDC,供查询。
CView::OnEndPrintPreview OnEndPrinting 释放资源GDI,恢复窗口。CPrintInfo::m_bPreview,m_nNumPreviewPages页数。
Convert nPage into a scroll position in pt.
MM_TEXT,MM_LOMETRIC,
相关文章推荐
- 完全指南:在 Linux 中如何打印和管理打印机
- VC中实现文字竖排的简单方法(推荐)
- 基于Silverlight打印的使用详解,是否为微软的Bug问题
- C#基本打印事件用法实例
- IE中用VBScript不提示直接打印的代码
- VC中CDC、HDC、pDC区别与联系及相互转换
- VC实现获取当前正在运行的进程
- vc中SendMessage自定义消息函数用法实例
- VC实现让关闭按钮成灰色不可用的方法
- VC++中的字体设置方法详解
- VC程序设计中CreateProcess用法注意事项
- VC实现批量删除指定文件的方法
- vc中使用SendMessage自定义消息函数
- vc提示unexpected end of file found的原因分析
- vc获取计算机名和ip地址的方法
- VC6.0实现读取Excel数据的方法
- VC下通过系统快照实现进程管理的方法
- C++软件添加dump调试打印日志(推荐)
- VC实现Windows多显示器编程的方法
- VC创建圆角dialog的实现方法