- 1
- 0
- 约9.74千字
- 约 26页
- 2017-04-08 发布于湖北
- 举报
可视化编程作业SDI应用程序设计讲述
可视化程序设计语言
实验五SDI应用程序设计
学 号:
姓 名: 何博
指导教师: 李家军
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(CArchive ar)
{
if (ar.IsStor
您可能关注的文档
最近下载
- 2025-2026高一生物上学期期末测试卷2(含答案)【考试范围:人教版必修1全册】.docx VIP
- 伺服电机故障分析与排除经验.docx VIP
- 2024年四川省南充市中考物理真题卷(含答案与解析).pdf VIP
- 空气源热泵施工组织.docx VIP
- 合格供应商清单.pdf VIP
- 2023CPXY-J477 MD气凝胶绝热保温涂料系统.docx VIP
- 2017年03月12日晋升班下跌浪周期律.pdf VIP
- 贝克曼 Beckman k-2,A48617-性激素结合球蛋白测定试剂盒(化学发光法) 中文说明书-REV1.0-SHBG.pdf VIP
- 2025年养老康复服务机器人市场分析报告.docx
- 幼儿园2026年教师培训工作计划.docx
原创力文档

文档评论(0)