在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例常规C/C++编程 → MFC打印实例

MFC打印实例

常规C/C++编程

下载此实例
  • 开发语言:C/C++
  • 实例大小:9.21M
  • 下载次数:1
  • 浏览次数:12
  • 发布时间:2021-11-23
  • 实例类别:常规C/C++编程
  • 发 布 人:keke97
  • 文件格式:.rar
  • 所需积分:2
 相关标签: MFC 打印 实例

实例介绍

【实例简介】调用Windows自带打印功能,可选用PDF虚拟打印机
【实例截图】

【核心代码】

void CScribbleView::OnPrint(CDC* pDC, CPrintInfo* pInfo) 
{
if (pInfo->m_nCurPage == 1)  // page no. 1 is the title page
{
PrintTitlePage(pDC, pInfo);
return; // nothing else to print on page 1 but the page title
}
CString strHeader = GetDocument()->GetTitle();

PrintPageHeader(pDC, pInfo, strHeader);
// PrintPageHeader() subtracts out from the pInfo->m_rectDraw the
// amount of the page used for the header.

pDC->SetWindowOrg(pInfo->m_rectDraw.left,-pInfo->m_rectDraw.top);

// Now print the rest of the page
OnDraw(pDC);
}

void CScribbleView::PrintTitlePage(CDC* pDC, CPrintInfo* pInfo)
{
// Prepare a font size for displaying the file name
LOGFONT logFont;
memset(&logFont, 0, sizeof(LOGFONT));
logFont.lfHeight = 75;  //  3/4th inch high in MM_LOENGLISH
// (1/100th inch)
CFont font;
CFont* pOldFont = NULL;
if (font.CreateFontIndirect(&logFont))
pOldFont = pDC->SelectObject(&font);

// Get the file name, to be displayed on title page
CString strPageTitle = GetDocument()->GetTitle();

// Display the file name 1 inch below top of the page,
// centered horizontally
pDC->SetTextAlign(TA_CENTER);
pDC->TextOut(pInfo->m_rectDraw.right/2, -100, strPageTitle);

if (pOldFont != NULL)
pDC->SelectObject(pOldFont);
}

void CScribbleView::PrintPageHeader(CDC* pDC, CPrintInfo* pInfo,
CString& strHeader)
{
// Print a page header consisting of the name of
// the document and a horizontal line
pDC->SetTextAlign(TA_LEFT);
pDC->TextOut(0,-25, strHeader);  // 1/4 inch down

// Draw a line across the page, below the header
TEXTMETRIC textMetric;
pDC->GetTextMetrics(&textMetric);
int y = -35 - textMetric.tmHeight;          // line 1/10th inch below text
pDC->MoveTo(0, y);                          // from left margin
pDC->LineTo(pInfo->m_rectDraw.right, y);    // to right margin

// Subtract out from the drawing rectange the space used by the header.
y -= 25;    // space 1/4 inch below (top of) line
pInfo->m_rectDraw.top = y;
}

标签: MFC 打印 实例

实例下载地址

MFC打印实例

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
;
报警