VC++程序设计课程考核大作业_第1页
VC++程序设计课程考核大作业_第2页
VC++程序设计课程考核大作业_第3页
VC++程序设计课程考核大作业_第4页
VC++程序设计课程考核大作业_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 设计要求 1 建立一个多文档的应用项目 项目名称为学生姓名拼音首字母缩写 并将视图类设置为表单类视图 2 在该表单中采用编辑框和旋转按钮输入点的横 纵坐标值 3 对框架窗口进行切分 4 使得左边窗格输入点的坐标值后 右边窗格将在该点处显示一个小方 块 若在右边窗格中任意单击鼠标 则相应的小方块移动到当前鼠标位置处 同时左边编辑框的内容也会随之发生改变 2 设计步骤及部分代码 2 1 创建表单应用程序 设计表单 1 用 MFC AppWizard 创建一个多文档应用程序 Qwl 在向导的第六 步中选择视图的基类为 CformView 2 打开表单模板资源 参看下表 调整表单模板大小 并依次添加如下 表所示的控件 表 2 1 控件ID 号标题属性 组框缺省 坐标设 置 缺省 X 静态文本缺省 Y 缺省 IDC EDIT1 编辑框 IDC EDIT2 缺省 IDC SPIN1 旋转按钮 IDC SPIN2 Auto buddy Set buddy integer Aligement Right 3 打开 MFC ClassWizard 的 Member Variables 标签 在 Class name 中选 择 CQwlView 选中所需控件 ID 号 双击鼠标 依次为下列控件添加成员变量 表 2 2 控件 ID 号变量类型变量名变量类别 IDC EDIT1m CoorXValue IDC EDIT2 int m CoorYValue IDC SPIN1m SpinX Control IDC SPIN2 CSpinButtonCtrl m SpinYControl 2 2 添加 CQwlDoc 和 CQwlView 类代码 1 在 CQwlDoc 类中添加 public CPoint m ptRect 用来记录小方块的 位置 在 CQwlDoc 类的构造函数中设置初值 m CQwlDoc CQwlDoc m ptRect x m ptRect y 0 2 为 CQwlView 添加自定义数据成员 public BOOL m bEditOK 在 CQwlView 构造函数中设置初值 m bSpinOK FALSE 3 打开 MFC ClassWizard 的 Message Maps 标签为 IDC EDIT1 和 IDC Edit2 添加 EN CHANGE 的消息映射 使它们的映射函数名都设为 OnChangeEdit 并添加下列代码 void CQwlView OnChangeEdit if m bEditOK return 使 CEx RectView 类视图初始显示时不执行该函数 下面代码 UpdateData TRUE CQwlDoc pDoc CQwlDoc GetDocument pDoc m ptRect x m CoorX 将设定坐标值存入文档数据成员 pDoc m ptRect y m CoorY CPoint pt m CoorX m CoorY pDoc UpdateAllViews NULL 2 CObject 通知更新 CDrawView 视图 调用 CDrawView OnUpdate 函数并传递 Hint 参数 4 用 MFC ClassWizard 为 CQwlView 添加 OnUpdate 的消息函数 并添 加下列代码 void CQwlView OnUpdate CView pSender LPARAM lHint CObject pHint if lHint 1 接受 CDrawView 传递 Hint 参数 CPoint pPoint CPoint pHint m CoorX pPoint x m CoorY pPoint y UpdateData FALSE 使编辑框控件显示鼠标坐标 CQwlDoc pDoc CQwlDoc GetDocument pDoc m ptRect pPoint 将鼠标坐标值存入文档数据成员 5 在 CQwlView OnInitialUpdate 中添加初始化代码 void CQwlView OnInitialUpdate CFormView OnInitialUpdate ResizeParentToFit CQwlDoc pDoc CQwlDoc GetDocument m CoorX pDoc m ptRect x m CoorY pDoc m ptRect y m SpinX SetRange 0 1024 m SpinY SetRange 0 768 UpdateData FALSE 编辑框显示坐标位置初值 m bEditOK TRUE 2 3 新增 CDrawView 类 添加框架窗口切分功能 1 用 MFC Class Wizard 添加一个新的 CView 的派生类 CDrawView 2 用 MFC Class Wizard 为 CChildFrame 类添加 OnCreateClient 函数的重 载 并添加下列代码 BOOL CChildFrame OnCreateClient LPCREATESTRUCT lpcs CCreateContext pContext CRect rect GetClientRect 获得视图窗口的尺寸存入 rect 对象中 CSize paneSize rect Width 2 32 rect Height 定义切分后的视图窗口 的尺寸 BOOL bRes m wndSplitter CreateStatic this 1 2 创建静态切分窗口 m wndSplitter CreateView 0 0 RUNTIME CLASS CQwlView paneSize pContext 为切分窗口指定视图和初始尺寸 m wndSplitter CreateView 0 1 RUNTIME CLASS CDrawView paneSize pContext return bRes 2 在 ChildFrm cpp 的前面添加下列语句 include ChildFrm h include QwlView h include DrawView h 3 打开 ChildFrm h 文件 为 CChildFrame 类添加下列成员变量 public CSplitterWnd m wndSplitter 4 打开 Ex RectView h 文件 在 class CEx RectView public CFormView 语句前面添加下列代码 class CQwlDoc class CqwlView public CFornView 2 4 添加 CDrawView 类代码 1 为 CDrawView 类添加一个公有型的 CPoint 数据成员 m ptDraw 用 来记录绘制小方块的位置 2 在 CDrawView OnDraw 函数中添加下列代码 void CDrawView OnDraw CDC pDC 以小方块位置数据成员值为坐标 绘制边长为 10 的红心小方块 CDocument pDoc GetDocument CRect rc m ptDraw x 5 m ptDraw y 5 m ptDraw x 5 m ptDraw y 5 pDC Rectangle rc 3 用 MFC ClassWizard 为 CDrawView 类添加 OnInitialUpdata 的消息函 数 并添加下列代码 void CDrawView OnInitialUpdate CView OnInitialUpdate CQwlDoc pDoc CQwlDoc m pDocument m ptDraw pDoc m ptRect 5 在 DrawView cpp 文件的前面添加 CQwlDoc 类的包含语句 include Qwl h include DrawView h include QwlDoc h 5 用 MFC ClassWizard 为 CDrawView 类添加 OnUpdata 的消息函数 并添加下列代码 void CDrawView OnUpdate CView pSender LPARAM lHint CObject pHint TODO Add your specialized code here and or call the base class if lHint 2 接受 CEx RectView 传递 Hint 参数 CPoint pPoint CPoint pHint m ptDraw pPoint Invalidate ClassWizard 为 CDrawView 类添加 WM LBUTTONDOWN 的消息映射 并 添加下列代码 void CDrawView OnLButtonDown UINT nFlags CP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论