已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
可视化程序设计语言实验五 SDI 应用程序设计学 号: 12020229姓 名: 何博指导教师: 李家军 2015 年 5 月作业题目:实验五 SDI 应用程序设计(1)任务描述:编写一个 SDI 风格的 MFC 应用程序,要求主窗口菜单项中有一个菜单项“输入图形参数” ,点击后会弹出一个对话框,其中有标签“输入圆的半径” ,后面是一个编辑框控件,下一行是标签“圆心的横坐标:” ,后面是一个编辑框,下一行是标签“圆心的纵坐标:” ,后面是一个编辑框。下一行是两个按纽, “确认输入” , “放弃输入” ,电击“确认按纽”后对话框关闭,在编辑框中输入的数据应该保存到文挡对象中有关的变量中,点击“放弃按纽”后对话框关闭,在编辑框中输入的数据不保存到文档对象中,如果数据发生变化,在视中指定位置上为中心处,会显示出一个指定半径的圆,并在圆的正下方显示:“面积是:xxxx”的字符串。你可以在主菜单中增加选择画笔、画刷样式的菜单项,并实现相应的功能。但基本功能应保证完成。实验步骤:1、 创建工程文件,在资源视图中,添加对话框资源。为对话框添加类,类名 DlgInput,基类 CDialog。向对话框中加入 3 个编辑窗控件,并分别添加变量 X,Y,R。2、 为 CMY_SDI 类添加成员变量 m_X,m_Y,m_R。3、 文档变量初始化CMY_SDIDoc:CMY_SDIDoc(): m_X(200), m_Y(200), m_R(50)/ TODO: 在此添加一次性构造代码BOOL CSDIbookDoc:OnNewDocument()if (!CDocument:OnNewDocument()/ TODO: 在此添加重新初始化代码/ (SDI 文档将重用该文档)m_X=200;m_Y=200;m_R=50;return TRUE;4、 通过对话框来改变 CMY_SDIDoc 的成员变量 m_X,m_Y,m_R在资源视图中,编辑菜单栏,加入 NEW 菜单,并加入子菜单改变图形参数,并添加事件处理向导,消息类型选择 COMMAND,类列表中选择 CMY_SDIDoc,处理函数名 OnChange。在 CMY_SDIDoc,cpp 中加入头文件 DlgInput.h。void CSDIbookDoc:OnChange()/ TODO: 在此添加命令处理程序代码DlgInput dlg;if(dlg.DoModal()=IDOK)/调用 DoModal()函数显示该模式对话框m_R=dlg.R;m_X=dlg.X;m_Y=dlg.Y;UpdateAllViews(NULL); /刷新视图5、 视图的输出在 MY_SDI 程序视图类 CMY_SDIView 类的 OnDraw 成员函数中,添加如下代码void CSDIbookView:OnDraw(CDC* pDC)CSDIbookDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;/ TODO: 在此处为本机数据添加绘制代码CRect rectClient;GetClientRect(rectClient);CSize sizeClient=rectClient.Size();int R=pDoc-m_R;int X=pDoc-m_X;int Y=pDoc-m_Y;HBRUSH hBrush;HPEN hPen;hPen=CreatePen(PS_SOLID,2,RGB(0,255,0); hBrush=CreateHatchBrush(HS_BDIAGONAL,RGB(255,0,0); /画刷(CBrush*)pDC-SelectObject(hBrush);(CPen*)pDC-SelectObject(hPen);pDC-Ellipse(X-R,Y-R,X+R,Y+R);6、 文档串行化通过重载 CMY_SDIDoc 类的 Serialize 函数来完成串行化。代码如下void CSDIbookDoc:Serialize(CArchivearm_X;arm_Y;程序结果:初始运行初始参数更改参数更改后结果实验程序/ DlgInput.cpp : 实现文件/#include “stdafx.h“#include “SDI book.h“#include “DlgInput.h“#include “afxdialogex.h“#include “DlgInput.h“/ DlgInput 对话框IMPLEMENT_DYNAMIC(DlgInput, CDialog)DlgInput:DlgInput(CWnd* pParent /*=NULL*/): CDialog(DlgInput:IDD, pParent), R(50), X(200), Y(200)DlgInput:DlgInput()void DlgInput:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT1, R);DDX_Text(pDX, IDC_EDIT2, X);DDX_Text(pDX, IDC_EDIT3, Y);BEGIN_MESSAGE_MAP(DlgInput, CDialog)ON_EN_CHANGE(IDC_EDIT1, void DlgInput:OnBnClickedCancel()/ TODO: 在此添加控件通知处理程序代码CDialog:OnCancel();/ SDI bookDoc.cpp : CSDIbookDoc 类的实现/#include “stdafx.h“/ SHARED_HANDLERS 可以在实现预览、缩略图和搜索筛选器句柄的/ ATL 项目中进行定义,并允许与该项目共享文档代码。#ifndef SHARED_HANDLERS#include “SDI book.h“#include “DlgInput.h“#endif#include “SDI bookDoc.h“#include #ifdef _DEBUG#define new DEBUG_NEW#endif/ CSDIbookDocIMPLEMENT_DYNCREATE(CSDIbookDoc, CDocument)BEGIN_MESSAGE_MAP(CSDIbookDoc, CDocument)ON_COMMAND(ID_NEW_32771, / TODO: 在此添加重新初始化代码/ (SDI 文档将重用该文档)m_X=200;m_Y=200;m_R=50;return TRUE;/ CSDIbookDoc 序列化void CSDIbookDoc:Serialize(CArchivearm_X;arm_Y;#ifdef SHARED_HANDLERS/ 缩略图的支持void CSDIbookDoc:OnDrawThumbnail(CDCCString strText = _T(“TODO: implement thumbnail drawing here“);LOGFONT lf;CFont* pDefaultGUIFont = CFont:FromHandle(HF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年黑河学院马克思主义基本原理概论期末考试模拟试卷
- 初中人工智能教育伦理规范在英语阅读教学中的实践与反思教学研究课题报告
- 2024年内蒙古科技大学马克思主义基本原理概论期末考试真题汇编
- 初中历史课程:流浪动物问题与历史事件关联研究教学研究课题报告
- 2024年北京经济管理职业学院马克思主义基本原理概论期末考试模拟试卷
- 2025年石家庄幼儿师范高等专科学校马克思主义基本原理概论期末考试笔试题库
- 2024年石家庄邮电职业技术学院马克思主义基本原理概论期末考试真题汇编
- 2024年深圳大学马克思主义基本原理概论期末考试笔试真题汇编
- 2025年沧州师范学院马克思主义基本原理概论期末考试真题汇编
- 2025年武汉冶金管理干部学院马克思主义基本原理概论期末考试模拟试卷
- 2026年七年级历史上册期末考试试卷及答案(共六套)
- 资产评估期末试题及答案
- 2025年内科医师定期考核模拟试题及答案
- 郑州大学《大学英语》2023-2024学年第一学期期末试卷
- 校企合作工作室规范管理手册
- 2025年农业农村部科技发展中心招聘备考题库及1套参考答案详解
- 学堂在线 雨课堂 学堂云 研究生学术与职业素养讲座 章节测试答案
- 博士课程-中国马克思主义与当代(2024年修)习题答案
- GB/T 2424.25-2000电工电子产品环境试验第3部分:试验导则地震试验方法
- GB/T 18341-2021地质矿产勘查测量规范
- FZ/T 24022-2015精梳水洗毛织品
评论
0/150
提交评论