MFC课程设计实验报告(10)

2019-09-02 13:38

MFC—课程设计

}

return CView::PreCreateWindow(cs);

/////////////////////////////////////////////////////////////////////////////

// CLwhView drawing

void CLwhView::OnDraw(CDC* pDC) { }

/////////////////////////////////////////////////////////////////////////////

// CLwhView printing

BOOL CLwhView::OnPreparePrinting(CPrintInfo* pInfo)

}

// TODO: add draw code for native data here

}

CLwhDoc* pDoc = GetDocument(); 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);

46

MFC—课程设计

{ }

void CLwhView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { }

void CLwhView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { }

/////////////////////////////////////////////////////////////////////////////

// CLwhView diagnostics

#ifdef _DEBUG

void CLwhView::AssertValid() const { }

void CLwhView::Dump(CDumpContext& dc) const { }

CView::Dump(dc); CView::AssertValid();

// TODO: add cleanup after printing

// TODO: add extra initialization before printing // default preparation

return DoPreparePrinting(pInfo);

47

MFC—课程设计

CLwhDoc* CLwhView::GetDocument() // non-debug version is inline { }

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////

// CLwhView message handlers

void CLwhView::OnLButtonDown(UINT nFlags, CPoint point) {

// TODO: Add your message handler code here and/or call default ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CLwhDoc))); return (CLwhDoc*)m_pDocument;

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:

48

MFC—课程设计

{ }

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,

}

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;

49

MFC—课程设计

}

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:

{

p = new CText(dlg.X,dlg.Y,

dlg.LineColorR,dlg.LineColorG,dlg.LineColorB,dlg.Angle);

} else {

//未按下Ctrl键时左击,则逐个比较,看是否命中图元

for (int i = 0; i < pDoc->m_Elements.GetSize(); i++) {

p = (CShape*)pDoc->m_Elements[i]; if (p->IsMatched(pntLogical)) { }

}

pDoc->m_Elements.Add(p); Invalidate();

}

break;

50


MFC课程设计实验报告(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高中数学实施分层教学的研究

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: