为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

MFC曲线绘制

2019-09-20 13页 doc 40KB 34阅读

用户头像

is_036899

暂无简介

举报
MFC曲线绘制西 安 邮 电 大 学 课内实验报告 实验名称:MFC曲线绘制实验报告  专业名称:      计算机科学与技术 班    级:      计科1202班 学生姓名:      李和娜 学号(8位):    04121179(32) 指导教师:      王博 实验日期:      2014年5月16日 一. 实验目的及实验环境 1.实验目的:在Visual C++6.0的环境中创建一个工程实现线的绘制 (1)熟悉MFC开发环境,了解窗体编程的概念和方法 (2)使用MFC中单文档模式开发程序(SDI) (3...
MFC曲线绘制
西 安 邮 电 大 学 课内实验 实验名称:MFC曲线绘制实验报告  专业名称:      计算机科学与技术 班    级:      计科1202班 学生姓名:      李和娜 学号(8位):    04121179(32) 指导教师:      王博 实验日期:      2014年5月16日 一. 实验目的及实验环境 1.实验目的:在Visual C++6.0的环境中创建一个工程实现线的绘制 (1)熟悉MFC开发环境,了解窗体编程的概念和方法 (2)使用MFC中单文档模式开发程序(SDI) (3)了解文件、对象的序列化,实现文件的持久化存储 2.实验环境:Visual C++ 6.0 二. 实验内容 (1).工程的创建。使用MFC AppWizard创建一个基于对话框的工程; (2).界面。使用控件工具栏为对话框添加所需控件,并设置控件属性;使用界面布局工具栏调整控件布局,完成应用程序界面设计。 (3).创建对话框成员变量和成员函数。使用ClassWizard为控件添加相关联的对话框成员变量和消息相应函数;在Workspace窗口的ClassView页中,根据需要为对话框添加其他成员变量和成员函数。 (4).编写代码。 (5).编译、调试程序;运行程序,并对程序功能进行测试。 三.设计 打开Visual C++6.0,新建一个工程 1.使用控件工具栏为对话框添加所需控件,并设置控件属性;使用界面布局工具栏调整控件布局,完成应用程序界面设计。 2.创建对话框成员变量和成员函数,编写代码。 3.编译、调试程序;运行程序,并对程序功能进行测试。 四.测试数据及运行结果 五.总结 1.实验过程中遇到的问题及解决办法; 通过上次几节实验课,渐渐熟悉了VB的实验环境,接下来对此VC的操作有了一定的熟悉,但是对于老师布置的任务还是无从下手,于是就到图书馆查找资料,找到一些有关程序方面的,可是这点小进展远远不够,于是进一步在网上查找,最后通过多次上机的摸索以及老师的讲解,渐渐深入,有了一定的能力,但实验还是会遇到问题,写代码的过程中有点难度,不过老师很有耐心,仔细为大家答疑解惑。通过老师的讲解,渐渐深入,对程序的理解更有了一定的能力,对界面的相关调整不是很熟悉,还有代码敲完执行程序时达不到预期的效果。最后通过问老师以及同学顺利完成简单的VC程序。但是对于把结果做的完整,美观还得进一步操作及其修改。 2.对设计及调试过程的。 在设计程序的过程中我感受到,既要学会VC程序的执行,又要熟悉和掌握VC的操作界面、面向对象程序设计的特点,要特别重视数据类型的定义、表达式、函数及常用控制的属性、功能和使用。还了解VC过程中的设计理念,集成开发环境,工程管理,窗体和常用控制,运算符,内部函数,基本语句的了解,数组概念基本操作。 通过这次课程设计,让我更加了解了计算机运行程序,了解了计算机运行的语言,并能根据自己的需要编写简单程序,极大地减少了工作量提高了工作效率,使计算机更加人性化,使我们更加充分的运用计算机,为以后工作提供了方便。 对VC编程多了更多的了解,它不仅可以实现简单的程序运算,而且还可以开发可视化的界面,设计漂亮的界面,多实践才能有更多的了解,获取更多的知识。 最后一点的体会是,面对困难的时候,如果绕不过去就要努力克服,可以求助老师,同学,查阅资料,不要轻易放弃任何方法。 附录:源代码: CDrawDoc.cpp IMPLEMENT_DYNCREATE(CDrawDoc, CDocument) BEGIN_MESSAGE_MAP(CDrawDoc, CDocument) //{{AFX_MSG_MAP(CDrawDoc) // NOTE - the ClassWizard will add and remove mapping macros here. //    DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG_MAP END_MESSAGE_MAP() CDrawDoc::CDrawDoc() { } CDrawDoc::~CDrawDoc() { } BOOL CDrawDoc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; return TRUE; } void CDrawDoc::Serialize(CArchive& ar) { if (ar.IsStoring()) { m_LineArray.Serialize(ar); } else { m_LineArray.Serialize(ar); } } void CDrawDoc::AssertValid() const { CDocument::AssertValid(); } void CDrawDoc::Dump(CDumpContext& dc) const { CDocument::Dump(dc); } CLine *CDrawDoc::GetLine(int nIndex) { if(nIndex<0||nIndex>m_LineArray.GetUpperBound()) { return NULL; } return m_LineArray.GetAt(nIndex); } void CDrawDoc::AddLine(CPoint pt1,CPoint pt2) { CLine *pLine = new CLine(pt1,pt2); m_LineArray.Add(pLine); SetModifiedFlag(); } int CDrawDoc::GetNumLines() { return m_LineArray.GetSize(); } void CDrawDoc::DeleteContents() { int nIndex = GetNumLines(); while(nIndex--) { delete m_LineArray.GetAt(nIndex); } m_LineArray.RemoveAll(); CDocument::DeleteContents(); } CDrawView.cpp IMPLEMENT_DYNCREATE(CDrawView, CView) BEGIN_MESSAGE_MAP(CDrawView, CView) //{{AFX_MSG_MAP(CDrawView) ON_WM_LBUTTONUP() ON_WM_LBUTTONDOWN() ON_WM_MOUSEMOVE() //}}AFX_MSG_MAP // Standard printing commands ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) END_MESSAGE_MAP() CDrawView::CDrawView() {    //构造函数中初始化拖拽标记,设置十字光标 m_bDragging = false;//初始化拖拽标记 m_hCross = AfxGetApp()->LoadStandardCursor(IDC_CROSS); } CDrawView::~CDrawView() { } BOOL CDrawView::PreCreateWindow(CREATESTRUCT& cs) { return CView::PreCreateWindow(cs); } void CDrawView::OnDraw(CDC* pDC) { CDrawDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CClientDC dc(this); // TODO: add draw code for native data here int nIndex = pDoc->GetNumLines(); TRACE("nIndex1=%d\n",nIndex); while(nIndex--) {  TRACE("nIndex2=%d\n",nIndex); pDoc->GetLine(nIndex)->DrawLine(pDC); CPoint pt1 = pDoc->GetLine(nIndex)->GetPt1(); CPoint pt2 = pDoc->GetLine(nIndex)->GetPt2(); dc.MoveTo(pt1); dc.LineTo(pt2);}} BOOL CDrawView::OnPreparePrinting(CPrintInfo* pInfo) {return DoPreparePrinting(pInfo); } void CDrawView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/){} void CDrawView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) {    // TODO: add cleanup after printing } #ifdef _DEBUG void CDrawView::AssertValid() const { CView::AssertValid(); } void CDrawView::Dump(CDumpContext& dc) const { CView::Dump(dc); } CDrawDoc* CDrawView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDrawDoc))); return (CDrawDoc*)m_pDocument; } #endif //_DEBUG void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) { if(m_bDragging) { m_bDragging = FALSE; ReleaseCapture(); } } void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)
/
本文档为【MFC曲线绘制】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索