扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:丁有和 来源:yesky 2007年11月16日
关键字:
void CEx_Prn1View::OnPrint(CDC* pDC, CPrintInfo* pInfo) { SetPageMargin(pDC, pInfo, 250, 250, 250, 250); // 页边距均为25毫米 int nOldMode = pDC->GetMapMode(); pDC->SetMapMode(MM_LOMETRIC); pDC->DPtoLP(&pInfo->m_rectDraw); // 先设置页眉字体,然后打印页眉 CFont font; font.CreateFontIndirect(&m_lfHead); CFont *oldFont = pDC->SelectObject(&font); // 计算页眉绘制的区域 int nHeadMargin = 200; // 设置页眉边距为20mm CRect rc(pInfo->m_rectDraw); rc.top = -nHeadMargin + m_nPhyTop; rc.bottom = pInfo->m_rectDraw.top; // 设页眉内容为打印的文档名 CEx_Prn1Doc* pDoc = GetDocument(); CString str = pDoc->GetPathName(); // 获取文档全名 pDC->DrawText(str, rc, DT_TOP|DT_CENTER); // 先设置页脚字体,然后打印页脚 font.Detach(); font.CreateFontIndirect(&m_lfFoot); pDC->SelectObject(&font); // 计算页脚绘制的区域 int nFootMargin = 200; // 设置页脚边距为20mm rc.top = pInfo->m_rectDraw.bottom; rc.bottom = rc.top - (nFootMargin - m_nPhyBottom); // 设页脚内容为打印的页码 str.Format("- %d -", pInfo->m_nCurPage); pDC->DrawText(str, rc, DT_BOTTOM | DT_SINGLELINE | DT_RIGHT); pDC->SelectObject(oldFont); // 恢复原来的字体 pDC->LPtoDP(&pInfo->m_rectDraw); pDC->SetMapMode(nOldMode); // 恢复原来映射模式 CEditView::OnPrint(pDC, pInfo); } |
CEx_Prn1View::CEx_Prn1View() { memset(&m_lfHead, 0, sizeof(LOGFONT)); // 成员为0 double fontScale = 254.0/72.0; // 一个点相当于多少0.1mm // 页眉字体 m_lfHead.lfHeight = -(int)(9 * fontScale + 0.5); // 9号字 m_lfHead.lfWeight = FW_NORMAL; m_lfHead.lfCharSet = GB2312_CHARSET; strcpy((LPSTR)&(m_lfHead.lfFaceName), "楷体_GB2312"); // 页脚字体 m_lfFoot = m_lfHead; } |
void CEx_Prn1View::OnViewFont() { CFontDialog dlg; if (dlg.DoModal() == IDOK) { LOGFONT lf; dlg.GetCurrentFont(&lf); HFONT hFont; hFont = ::CreateFontIndirect(&lf); if (hFont != NULL) SendMessage(WM_SETFONT, (WPARAM)hFont); } } |
void CEx_Prn1View::OnInitialUpdate() { CEditView::OnInitialUpdate(); SetTabStops(4 * 4); // 设置一个停止位等于4个字符 } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者