MFC—课程设计
/////////////////////////////////////////////////////////////////////////////
// CLwhView construction/destruction
CLwhView::CLwhView() { }
CLwhView::~CLwhView() { }
BOOL CLwhView::PreCreateWindow(CREATESTRUCT& cs) { }
/////////////////////////////////////////////////////////////////////////////
// CLwhView drawing
void CLwhView::OnDraw(CDC* pDC) {
CLwhDoc* pDoc = GetDocument(); return CView::PreCreateWindow(cs);
// TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs
// TODO: add construction code here
46
MFC—课程设计
}
ASSERT_VALID(pDoc); CShape* p;
if (pDoc->m_Elements.GetSize() > 0) {
for (int i=0; i < pDoc->m_Elements.GetSize(); i++) {
p = (CShape*)pDoc->m_Elements[i]; p->Draw(pDC);
}
}
// TODO: add draw code for native data here
/////////////////////////////////////////////////////////////////////////////
// CLwhView printing
BOOL CLwhView::OnPreparePrinting(CPrintInfo* pInfo) { }
void CLwhView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { }
// TODO: add extra initialization before printing // default preparation
return DoPreparePrinting(pInfo);
47
MFC—课程设计
void CLwhView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { }
/////////////////////////////////////////////////////////////////////////////
// CLwhView diagnostics
#ifdef _DEBUG
void CLwhView::AssertValid() const { }
void CLwhView::Dump(CDumpContext& dc) const { }
CLwhDoc* CLwhView::GetDocument() // non-debug version is inline { }
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CLwhDoc))); return (CLwhDoc*)m_pDocument; CView::Dump(dc); CView::AssertValid();
// TODO: add cleanup after printing
48
MFC—课程设计
// CLwhView message handlers
void CLwhView::OnLButtonDown(UINT nFlags, CPoint point) {
// TODO: Add your message handler code here and/or call default
CLwhDoc* pDoc = GetDocument();
CClientDC dc(this); CPoint pntLogical = point; OnPrepareDC(&dc);
dc.DPtoLP(&pntLogical);//DP->LP进行转换 CType dlg; CShape* p=NULL;
if ((nFlags&MK_CONTROL) == MK_CONTROL)//Ctrl键按下 {
if (dlg.DoModal() == IDOK)
{
switch(dlg.m_TuYuanTyp) {
case EnumTuYuanTyp_Square:
{ }
p = new CSquare(dlg.X,dlg.Y,dlg.Width,dlg.LineWidth,
dlg.LineColorR,dlg.LineColorG,dlg.LineColorB, dlg.FillColorR,dlg.FillColorG,dlg.FillColorB);
break;
case EnumTuYuanTyp_Rectangle:
{
p
=
new
CRectangle(dlg.X,dlg.Y,dlg.Width,dlg.High,dlg.LineWidth,
49
MFC—课程设计
}
dlg.LineColorR,dlg.LineColorG,dlg.LineColorB, dlg.FillColorR,dlg.FillColorG,dlg.FillColorB);
break;
case EnumTuYuanTyp_Triangle:
{
p
=
new
CTriangle(dlg.X,dlg.Y,dlg.Width,dlg.High,dlg.LineWidth,
}
dlg.LineColorR,dlg.LineColorG,dlg.LineColorB, dlg.FillColorR,dlg.FillColorG,dlg.FillColorB);
break;
case EnumTuYuanTyp_Circle:
{
p
=
new
CCircle(dlg.X,dlg.Y,dlg.Width,dlg.LineWidth,
}
dlg.LineColorR,dlg.LineColorG,dlg.LineColorB, dlg.FillColorR,dlg.FillColorG,dlg.FillColorB);
break;
case EnumTuYuanTyp_Ellipse:
{
p
=
new
CEllipse(dlg.X,dlg.Y,dlg.Width,dlg.High,dlg.LineWidth,
}
dlg.LineColorR,dlg.LineColorG,dlg.LineColorB, dlg.FillColorR,dlg.FillColorG,dlg.FillColorB);
break;
case EnumTuYuanTyp_Text:
50
MFC课程设计实验报告



