📄 m_esystemview.cpp
字号:
// M_ESystemView.cpp : implementation of the CM_ESystemView class
//
#include "stdafx.h"
#include "M_ESystem.h"
#include "M_ESystemDoc.h"
#include "M_ESystemView.h"
#include "BaseInfoDlg.h"
#include "MTeatherDlg.h"
#include "SkinPlusPlus.h"
#include "M_Teacher.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CM_ESystemView
IMPLEMENT_DYNCREATE(CM_ESystemView, CScrollView)
BEGIN_MESSAGE_MAP(CM_ESystemView, CScrollView)
//{{AFX_MSG_MAP(CM_ESystemView)
ON_COMMAND(ID_BASE_INFO, OnBaseInfo)
ON_COMMAND(ID_M_TEACHER, OnMTeacher)
ON_COMMAND(ID_PRINT_END, OnPrintEnd)
ON_COMMAND(ID_M_TEA, OnMTea)
ON_COMMAND(ID_Show, OnShow)
ON_UPDATE_COMMAND_UI(ID_M_TEA, OnUpdateMTea)
ON_UPDATE_COMMAND_UI(ID_Show, OnUpdateShow)
ON_UPDATE_COMMAND_UI(ID_M_TEACHER, OnUpdateMTeacher)
ON_UPDATE_COMMAND_UI(ID_PRINT_END, OnUpdatePrintEnd)
ON_WM_PAINT()
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CM_ESystemView construction/destruction
CM_ESystemView::CM_ESystemView()
{
// TODO: add construction code here
this->count=0;
}
CM_ESystemView::~CM_ESystemView()
{
}
BOOL CM_ESystemView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
LoadSkin(_T("Topax.ssk"));
return CScrollView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CM_ESystemView drawing
void CM_ESystemView::OnDraw(CDC* pDC)
{
CM_ESystemDoc* pDoc = GetDocument();
/* if(count==0)
{
CFont font;
font.CreateFont(-700,0,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_ROMAN,"Time New Roman");
CFont* pOldFont = (CFont*)pDC->SelectObject(&font);
CPoint point(0,0);
point += CSize(3700,-1000);
pDC->TextOut(point.x,point.y,pDoc->m_string[0]);
pDC->SelectObject(pOldFont);
CFont font1;
font1.CreateFont(-300,0,0,0,400,TRUE,TRUE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_ROMAN,"Time New Roman");
CFont* pOldFont1 = (CFont*)pDC->SelectObject(&font1);
point += CSize(6000,-5000);
pDC->TextOut(point.x,point.y,pDoc->m_s);
pDC->SelectObject(pOldFont1);
}
else
{
int m,n;
CString str;
CFont font;
font.CreateFont(-300,0,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_ROMAN,"Time New Roman");
CFont* pOldFont = (CFont*)pDC->SelectObject(&font);
m=pDoc->count2/pDoc->count1;
n=pDoc->count2%pDoc->count1;
CPoint point(0,0);
point += CSize(720,-720);
pDC->TextOut(point.x,point.y,"考试科目:");
point += CSize(1500,0);
pDC->TextOut(point.x,point.y,pDoc->m_Subject);
point += CSize(1500,0);
pDC->TextOut(point.x,point.y,"考试时间:");
point += CSize(1500,0);
pDC->TextOut(point.x,point.y,pDoc->m_Time);
point +=CSize(-4500,-600);
for (int i=0;i<pDoc->count1;i++)
{
pDC->TextOut(point.x,point.y,"---------------------------------------------------");
point += CSize(0,-600);
pDC->TextOut(point.x,point.y,"考试地点:");
point += CSize(1500,0);
pDC->TextOut(point.x,point.y,pDoc->m_Adress[i]);
point += CSize(1500,0);
pDC->TextOut(point.x,point.y,"主考老师:");
point += CSize(1500,0);
pDC->TextOut(point.x,point.y,pDoc->m_zTeacher[i]);
point += CSize(-4500,-1000);
pDC->TextOut(point.x,point.y,"监考老师:");
point += CSize(1500,-500);
if (n==0)
{
for(int j=i*m;j<i*m+m;j++)
{
//
pDC->TextOut(point.x,point.y,pDoc->m_mTeacher[j]);
point+=CSize(0,-400);
}
}
else
{
if (i==pDoc->count1-1)
{
for(int j=i*m;j<i*m+n;j++)
{
pDC->TextOut(point.x,point.y,pDoc->m_mTeacher[j]);
point +=CSize(0,-400);
}
}
else
{
for(int j=i*m;j<i*m+m;j++)
{
pDC->TextOut(point.x,point.y,pDoc->m_mTeacher[j]);
point +=CSize(0,-400);
}
}
}
point += CSize(-1500,-500);
}
pDC->SelectObject(pOldFont);
}*/
}
void CM_ESystemView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();
// CSize sizeTotal;
// TODO: calculate the total size of this view
// sizeTotal.cx = sizeTotal.cy = 100;
// SetScrollSizes(MM_TEXT, sizeTotal);
/* CSize sizeTotal(m_rectPrint.Width(),-m_rectPrint.Height());
CSize sizePage(sizeTotal.cx/2,sizeTotal.cy/2);
CSize sizeLine(sizeTotal.cx/100,sizeTotal.cy/100);
SetScrollSizes(MM_TWIPS,sizeTotal,sizePage,sizeLine);*/
CSize sizeTotal;
sizeTotal.cx=100;
sizeTotal.cy=100;
SetScrollSizes(MM_TEXT,sizeTotal);
}
/////////////////////////////////////////////////////////////////////////////
// CM_ESystemView printing
BOOL CM_ESystemView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
pInfo->SetMaxPage(5);
return DoPreparePrinting(pInfo);
}
void CM_ESystemView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CM_ESystemView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CM_ESystemView diagnostics
#ifdef _DEBUG
void CM_ESystemView::AssertValid() const
{
CScrollView::AssertValid();
}
void CM_ESystemView::Dump(CDumpContext& dc) const
{
CScrollView::Dump(dc);
}
CM_ESystemDoc* CM_ESystemView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CM_ESystemDoc)));
return (CM_ESystemDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CM_ESystemView message handlers
void CM_ESystemView::OnBaseInfo()
{
// TODO: Add your command handler code here
CBaseInfoDlg dlg;
dlg.DoModal();
}
void CM_ESystemView::OnMTeacher()
{
// TODO: Add your command handler code here
CMTeatherDlg dlg1;
dlg1.DoModal();
}
void CM_ESystemView::OnPrintEnd()
{
// TODO: Add your command handler code here
CM_ESystemDoc* pDoc = GetDocument();
pDoc->m_info.Empty();
pDoc->m_Teacher.Empty();
pDoc->m_Subject.Empty();
pDoc->m_temp.Empty();
pDoc->m_M_Teacher.Empty();
pDoc->m_Time.Empty();
for (int i=0;i<10;i++)
{
pDoc->m_Adress[i].Empty();
}
for (int j=0;j<10;j++)
{
pDoc->m_mTeacher[i].Empty();
}
for (int k=0;k<10;k++)
{
pDoc->m_zTeacher[i].Empty();
}
count=0;
pDoc->UpdateAllViews(NULL);
}
void CM_ESystemView::OnMTea()
{
// TODO: Add your command handler code here
CM_Teacher dlg2;
dlg2.DoModal();
}
void CM_ESystemView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
// TODO: Add your specialized code here and/or call the base class
int nHeight;
static int i=0;
static int j=0;
static int k=0;
CFont font;
TEXTMETRIC tm;
pDC->SetMapMode(MM_TWIPS);
CM_ESystemDoc* pDoc=GetDocument();
m_nPage = pInfo->m_nCurPage;
font.CreateFont(-400,0,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_ROMAN,"Time New Roman");
CFont* pOldFont = (CFont*)pDC->SelectObject(&font);
pDC->GetTextMetrics(&tm);
nHeight = tm.tmHeight + tm.tmExternalLeading;
int m = pDoc->count2/pDoc->count1;
int n = pDoc->count2%pDoc->count1;
if(i<pDoc->count1&&j<pDoc->count2)
if ( (m_nPage-1)%(m+1)==0)
{
pDoc->m_temp.Empty();
pDoc->m_temp+=pDoc->m_zTeacher[i];
// MessageBox(pDoc->m_zTeacher[i]);
pDoc->m_temp+="老师:\n";
pDoc->m_info.Empty();
pDoc->m_info+="你好,请于";
pDoc->m_info+=pDoc->m_Time;
pDoc->m_info+=",在";
pDoc->m_info+=pDoc->m_Adress[i];
// MessageBox(pDoc->m_Adress[i]);
pDoc->m_info+="主考";
pDoc->m_info+=pDoc->m_Subject;
pDoc->m_info+=",谢谢合作\n";
pDoc->m_End = "教务处";
pDC->TextOut(1000,-0*nHeight-720,pDoc->m_temp);
pDC->TextOut(1000,-1*nHeight-720,pDoc->m_info);
pDC->TextOut(1000,-2*nHeight-720,pDoc->m_End);
i++;
}
else
{
pDoc->m_temp1.Empty();
pDoc->m_temp1+=pDoc->m_mTeacher[j];
pDoc->m_temp1+="老师:\n";
pDoc->m_info.Empty();
pDoc->m_info+="你好,请于";
pDoc->m_info+=pDoc->m_Time;
pDoc->m_info+=",在";
pDoc->m_info+=pDoc->m_Adress[i-1];
pDoc->m_info+="监考由";
pDoc->m_temp.Empty();
pDoc->m_temp=pDoc->m_zTeacher[i-1];
pDoc->m_info+=pDoc->m_temp;
pDoc->m_info+="老师任主考的";
pDoc->m_info+=pDoc->m_Subject;
pDoc->m_info+=",谢谢合作\n";
pDC->TextOut(1000,-0*nHeight-720,pDoc->m_temp1);
pDC->TextOut(1000,-1*nHeight-720,pDoc->m_info);
pDC->TextOut(1000,-2*nHeight-720,pDoc->m_End);
j++;
}
else
{
pDC->TextOut(1000,-720,"预览结束");
}
pDC->SelectObject(pOldFont);
CScrollView::OnPrint(pDC, pInfo);
}
void CM_ESystemView::PrintPageHeader(CDC* pDC)
{
CString str;
CPoint point(0,0);
pDC->TextOut(point.x,point.y,"燕山大学");
point += CSize(720,-720);
str.Format("%10.10s %10.10s %10.10s %10.10s %10.10s","考试科目","考试时间","考试地点","主考老师","监考老师");
pDC->TextOut(point.x,point.y,str);
}
void CM_ESystemView::OnShow()
{
// TODO: Add your command handler code here
count++;
GetDocument()->UpdateAllViews(NULL);
}
void CM_ESystemView::OnUpdateMTea(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(!(GetDocument()->m_Subject.IsEmpty()||GetDocument()->m_Time.IsEmpty()));
}
void CM_ESystemView::OnUpdateShow(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(!GetDocument()->m_mTeacher[0].IsEmpty());
}
void CM_ESystemView::OnUpdateMTeacher(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(!(GetDocument()->m_zTeacher[0].IsEmpty()||GetDocument()->m_Adress[0].IsEmpty()));
}
void CM_ESystemView::OnUpdatePrintEnd(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if(count==0)
{
pCmdUI->Enable(FALSE);
}
else
{
pCmdUI->Enable(TRUE);
}
}
void CM_ESystemView::OnPaint()
{
CPaintDC dc(this); // device context for painting
//MessageBox("dsfsdf");
// TODO: Add your message handler code here
CM_ESystemDoc* pDoc=GetDocument();
//dc.SetMapMode(MM_TWIPS);
if(count==0)
{
CFont font;
font.CreateFont(-35,0,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_ROMAN,"Time New Roman");
CFont* pOldFont = (CFont*)dc.SelectObject(&font);
CPoint point(0,0);
point += CSize(200,40);
dc.TextOut(point.x,point.y,pDoc->m_string[0]);
dc.SelectObject(pOldFont);
CFont font1;
font1.CreateFont(-20,0,0,0,400,TRUE,TRUE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_ROMAN,"Time New Roman");
CFont* pOldFont1 = (CFont*)dc.SelectObject(&font1);
point += CSize(300,270);
dc.TextOut(point.x,point.y,pDoc->m_s);
dc.SelectObject(pOldFont1);
}
else
{
int m,n;
CString str;
CFont font;
font.CreateFont(-20,0,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_ROMAN,"Time New Roman");
CFont* pOldFont = (CFont*)dc.SelectObject(&font);
m=pDoc->count2/pDoc->count1;
n=pDoc->count2%pDoc->count1;
CPoint point(0,0);
point += CSize(30,30);
dc.TextOut(point.x,point.y,"考试科目:");
point += CSize(100,0);
dc.TextOut(point.x,point.y,pDoc->m_Subject);
point += CSize(100,0);
dc.TextOut(point.x,point.y,"考试时间:");
point += CSize(100,0);
dc.TextOut(point.x,point.y,pDoc->m_Time);
point +=CSize(-300,30);
for (int i=0;i<pDoc->count1;i++)
{
dc.TextOut(point.x,point.y,"---------------------------------------------------");
point += CSize(0,30);
dc.TextOut(point.x,point.y,"考试地点:");
point += CSize(100,0);
dc.TextOut(point.x,point.y,pDoc->m_Adress[i]);
point += CSize(100,0);
dc.TextOut(point.x,point.y,"主考老师:");
point += CSize(100,0);
dc.TextOut(point.x,point.y,pDoc->m_zTeacher[i]);
point += CSize(-300,40);
dc.TextOut(point.x,point.y,"监考老师:");
point += CSize(100,25);
if (n==0)
{
for(int j=i*m;j<i*m+m;j++)
{
//
dc.TextOut(point.x,point.y,pDoc->m_mTeacher[j]);
point+=CSize(0,20);
}
}
else
{
if (i==pDoc->count1-1)
{
for(int j=i*m;j<i*m+n;j++)
{
dc.TextOut(point.x,point.y,pDoc->m_mTeacher[j]);
point +=CSize(0,20);
}
}
else
{
for(int j=i*m;j<i*m+m;j++)
{
dc.TextOut(point.x,point.y,pDoc->m_mTeacher[j]);
point +=CSize(0,20);
}
}
}
point += CSize(-100,20);
}
dc.SelectObject(pOldFont);
}
// Do not call CScrollView::OnPaint() for painting messages
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -