面向对象程序设计实验-使用MFC进行可视化编程
2021/6/3 1:20:49
本文主要是介绍面向对象程序设计实验-使用MFC进行可视化编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、实验目的及要求
- 了解在集成开发环境下程序的编辑、编译、连接、运行与调试;
二、实验设备与平台
- 实验设备:计算机;
- 平台:Windows 2000操作系统,Visual C++ 6.0或Microsoft Visual Studio 2005/2008/2010/2012/2013。
三、实验内容与步骤
1.用MFC的向导创建编辑框,在编辑框中实现算术“加”、“减”、“乘”及“除”的运算,界面如图13-1所示。
部分代码如下:
void CMFCApplication2Dlg::OnClickedButtonride() { UpdateData(true); mC = mA * mB; UpdateData(false); } void CMFCApplication2Dlg::OnClickedButtonadd() { UpdateData(true); mC = mA + mB; UpdateData(false); } void CMFCApplication2Dlg::OnClickedButtondivide() { UpdateData(true); mC = mA / mB; UpdateData(false); } void CMFCApplication2Dlg::OnClickedButtonsub() { UpdateData(true); mC = mA - mB; UpdateData(false); } void CMFCApplication2Dlg::OnClickedButtonExit() { ExitProcess(0); }
2.利用文档/视图结构创建一个绘图板,使其能绘画各种直线,具有新建空白窗口,重画窗口时可以恢复直线等功能。]
void CMFCApplication2View::void OnDraw(CDC* pDC) { int index; index=pDoc->GetTotalLine(); while(index--) pDoc->GetLine(index)->DrawLine(pDC); } void CMFCApplication2View::OnLButtonDown(UINT nFlags, CPoint point) { m_pOld = point; m_pOrigin = point; SetCapture(); m_Draw = 1; RECT rect; GetClientRect(&rect); ClientToScreen(&rect); ClipCursor(&rect); CView::OnLButtonDown(nFlags, point); } void CMFCApplication2View::OnMouseMove(UINT nFlags, CPoint point) { SetCursor(m_Hcursor); if (m_Draw) { CClientDC dc(this); dc.SetROP2(R2_NOT); dc.MoveTo(m_pOrigin); dc.LineTo(m_pOld); dc.MoveTo(m_pOrigin); dc.LineTo(point); m_pOld = point; } CView::OnMouseMove(nFlags, point); } void CMFCApplication2View::OnLButtonUp(UINT nFlags, CPoint point) { if (m_Draw) { m_Draw = 0; ReleaseCapture(); ClipCursor(NULL); } CView::OnLButtonUp(nFlags, point); CMFCApplication2Doc* pDoc = GetDocument(); pDoc->AddLine(m_pOrigin.x, m_pOrigin.y, point.x, point.y); } MFCApplication2Doc.h class CMyLine : public CObject { protected: int m_StartX; int m_StartY; int m_EndX; int m_EndY; public: CMyLine(int StartX, int StartY, int EndX, int EndY); void DrawLine(CDC* pDC); } protected: CObArray m_ObArray; public: void AddLine(int StartX, int StartY,int EndX,int EndY); CMyLine *GetLine(int index); int GetTotalLine(); class CMFCApplication2Doc : public CDocument { virtual void DeleteContents(); protected: CObArray m_ObArray; public: void AddLine(int StartX, int StartY, int EndX, int EndY); CMyLine* GetLine(int index); int GetTotalLine(); }; MFCApplication2Doc.cpp CMyLine::CMyLine(int StartX, int StartY,int EndX, int EndY) { m_StartX=StartX; m_StartY=StartY; m_EndX=EndX; m_EndY=EndY; }; void CMyLine::DrawLine(CDC*pDC) { pDC->MoveTo(m_StartX,m_StartY); pDC->LineTo(m_EndX,m_EndY); }; void CMyExamDoc::AddLine(int StartX, int StartY,int EndX,int EndY) { CMyLine *pMyLine = new CMyLine(StartX, StartY,EndX, EndY); m_ObArray. Add(pMyLine); }; CMyLine*CMyExamDoc::GetLine(int index) { if(index<0||index>m_ObArray.GetUpperBound()) return 0; return(CMyLine*)m_ObArray.GetAt(index); }; int CMyExamDoc::GetTotalLine() { return m_ObArray.GetSize(); }; void CMyExamDoc::DeleteContents() { int index; index=m_ObArray.GetSize(); while(index--) delete m_ObArray.GetAt(index); m_ObArray.RemoveAll(); }
这篇关于面向对象程序设计实验-使用MFC进行可视化编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04el-table 开启定时器下,表格的选中状态会消失是什么原因-icode9专业技术文章分享
- 2024-10-03如何安装和初始化飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03如何安装 App 并连接到飞牛 NAS?-icode9专业技术文章分享
- 2024-10-03如何安装飞牛 TV 并连接到影视服务器?-icode9专业技术文章分享
- 2024-10-03如何在PVE和ESXI上安装飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS安装系统异常情况处理-icode9专业技术文章分享
- 2024-10-03飞牛NAS如何创建存储空间?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS硬盘会自动休眠吗?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何安装飞牛影视和创建媒体库?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何为家人朋友开通影视账号?-icode9专业技术文章分享