课程设计说明书.docx
- 文档编号:8747227
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:12
- 大小:308.62KB
课程设计说明书.docx
《课程设计说明书.docx》由会员分享,可在线阅读,更多相关《课程设计说明书.docx(12页珍藏版)》请在冰豆网上搜索。
课程设计说明书
一、设计方案概述
为了学习C语言在windos内的应用,我们在MFC环境下设计一款满足依据用户的需求,进行简单的点,线,矩形的绘制的程序.
二、设计步骤
1.编译过程
①新建一个MFC单文档程序
②在资源视图中添加一个含有三个菜单项的菜单,分别为点、线、矩形。
③为菜单项添加命令响应(类向导)并编译
④为了根据用户的选择绘制图形,插入一个UINT类型的私有变量SUN,将用户的选择保存在该变量中。
为了确定画图的起始点,需要插入一个CPoint型私有变量MOON。
并在构造方法中将其初始化为0。
⑤根据用户不同的选择,给SUN不同的值:
点1,线2,矩形3。
⑥为了完成绘图功能,需要对用户鼠标左键的起落分别进行捕获,于是添加两个Windos消息处理器:
WM_LButtonDown与WM_LButtonup。
⑦鼠标左键按下时我们将点的位置保存在之前定义的MOON之中
⑧鼠标左键抬起时我们根据用户的选择进行画图(用户的选择保存在SUN里),使用CClient语句画图,用一个Switch语句选择用户的需求,调用不同的函数(包括dc.SetPixel、dc.MoveTo、dc.LineTo、dc.Rectangle)。
⑨为了图形的美观,添加了一个空白画刷和一个画笔。
2.程序的演示结果
1.矩形的绘制
2.矩形与直线
3.源代码
//课程设计AssignView.cpp:
implementationoftheCAssignViewclass
//
#include"stdafx.h"
#include"课程设计Assign.h"
#include"课程设计AssignDoc.h"
#include"课程设计AssignView.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//CAssignView
IMPLEMENT_DYNCREATE(CAssignView,CView)
BEGIN_MESSAGE_MAP(CAssignView,CView)
//{{AFX_MSG_MAP(CAssignView)
ON_COMMAND(IMD_DOT,OnDot)
ON_COMMAND(IMD_LINE,OnLine)
ON_COMMAND(IMD_RECTANGLE,OnRectangle)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
//}}AFX_MSG_MAP
//Standardprintingcommands
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()
/////////////////////////////////////////////////////////////////////////////
//CAssignViewconstruction/destruction
CAssignView:
:
CAssignView()
{
//TODO:
addconstructioncodehere
SUN=0;
MOON=0;
}
CAssignView:
:
~CAssignView()
{
}
BOOLCAssignView:
:
PreCreateWindow(CREATESTRUCT&cs)
{
//TODO:
ModifytheWindowclassorstylesherebymodifying
//theCREATESTRUCTcs
returnCView:
:
PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
//CAssignViewdrawing
voidCAssignView:
:
OnDraw(CDC*pDC)
{
CAssignDoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
//TODO:
adddrawcodefornativedatahere
}
/////////////////////////////////////////////////////////////////////////////
//CAssignViewprinting
BOOLCAssignView:
:
OnPreparePrinting(CPrintInfo*pInfo)
{
//defaultpreparation
returnDoPreparePrinting(pInfo);
}
voidCAssignView:
:
OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)
{
//TODO:
addextrainitializationbeforeprinting
}
voidCAssignView:
:
OnEndPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)
{
//TODO:
addcleanupafterprinting
}
/////////////////////////////////////////////////////////////////////////////
//CAssignViewdiagnostics
#ifdef_DEBUG
voidCAssignView:
:
AssertValid()const
{
CView:
:
AssertValid();
}
voidCAssignView:
:
Dump(CDumpContext&dc)const
{
CView:
:
Dump(dc);
}
CAssignDoc*CAssignView:
:
GetDocument()//non-debugversionisinline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CAssignDoc)));
return(CAssignDoc*)m_pDocument;
}
#endif//_DEBUG
/////////////////////////////////////////////////////////////////////////////
//CAssignViewmessagehandlers
voidCAssignView:
:
OnDot()
{
//TODO:
Addyourcommandhandlercodehere
SUN=1;
}
voidCAssignView:
:
OnLine()
{
//TODO:
Addyourcommandhandlercodehere
SUN=2;
}
voidCAssignView:
:
OnRectangle()
{
//TODO:
Addyourcommandhandlercodehere
SUN=3;
}
voidCAssignView:
:
OnLButtonDown(UINTnFlags,CPointpoint)
{
//TODO:
Addyourmessagehandlercodehereand/orcalldefault
MOON=point;
CView:
:
OnLButtonDown(nFlags,point);
}
voidCAssignView:
:
OnLButtonUp(UINTnFlags,CPointpoint)
{
//TODO:
Addyourmessagehandlercodehereand/orcalldefault
CView:
:
OnLButtonUp(nFlags,point);
CClientDCdc(this);
CPenpen(PS_SOLID,2,RGB(0,255,0));
dc.SelectObject(&pen);
CBrush*pBrush=CBrush:
:
FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
dc.SelectObject(pBrush);
switch(SUN)
{
case1:
dc.SetPixel(point,RGB(255,0,0));
break;
case2:
dc.MoveTo(MOON);
dc.LineTo(point);
break;
case3:
dc.Rectangle(CRect(MOON,point));
break;
}
}
系主任审查意见:
签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 说明书