欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    c简单绘图板解读Word文档下载推荐.docx

    • 资源ID:7863548       资源大小:68.98KB        全文页数:17页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c简单绘图板解读Word文档下载推荐.docx

    1、(1)程序中包含菜单项和工具栏;(2)先选择菜单项或单击工具栏上的命令按钮,然后在窗体空白区域单击鼠标后,绘制相应菜单项或命令按钮指定的图形、文字。设计思路:问题分析:绘图板需要创建一个用户界面,然后用户界面中需要有菜单栏和工具栏进行不同的操作选择。 在菜单栏中能指定不同的基本图形进行绘制。设计一个单文档类型的MFC AppWizard (exe)工程,工程取名为:绘图板。此程序将实现简单的绘图功能,包括点、直线、矩形、椭圆、扇形和连续线的绘制。并且能实现绘图的控制,包括线宽、线型和颜色的设置,图形的保存和打开设计图:结构分析:首先,新建一个单文档类型的MFC AppWizard (exe)工

    2、程,工程取名为:Graphic。为此程序添加一个子菜单,菜单名称为“绘图”,并为其添加六个菜单项,分别用来控制不同图形的绘制。当用户选择其中的一个菜单项后,程序将按照当前的选择进行相应图形的绘制。添加的六个菜单项的ID。然后分别为这六个菜单项添加命令响应,本程序让视类(CGraphicView)对这些菜单命令进行响应,在程序运行以后,当用户单击某个菜单项时,应该把用户的选择保存起来,以便随后的绘图操作使用。因此在CMyView类中添加一个私有变量DrawType;用来保存用户的选择,该变量的定义如下所述:private: UINT DrawType;在程序运行以后,当用户单击某个菜单项时,应该

    3、把用户的选择保存起来,以便随后的绘图操作使用。因此在CGraphicView类中添加一个私有变量m_nDrawType; UINT m_nDrawType;接着,在视类的构造函数中将此变量初始化为0,程序代码如下:CGraphicView:CGraphicView() / TODO: add construction code here m_nDrawType=0;然后利用switch/case语句,来分别完成相应图形的绘制。当用户选择【绘图】菜单下的不同子菜单项时,将变量DrawType设置为不同的值。void CGraphicView:OnDot() Add your command ha

    4、ndler code here m_nDrawType=1;OnLine() m_nDrawType=2;OnRectangle() m_nDrawType=3;OnEllipse() m_nDrawType=4;OnLianxuxian() m_nDrawType=5;对于直线、矩形和椭圆,在绘制时都可有两点来确定其图形。当鼠标左击时得到一个点,当鼠标左键松开时得到另外一个点。为视类CGraphicView分别捕获鼠标左键按下和弹起这两个消息。另外当鼠标左键按下时,需要将鼠标当前按下点保存,因此我们为CGraphicView再增加一个CPoint类型的私有成员变量:m_ptOrigin,在视

    5、类的构造函数中将此变量初始化为0。在鼠标按下消息响应函数中,保存该点,代码如下:OnLButtonDown(UINT nFlags, CPoint point) Add your message handler code here and/or call default m_ptOrigin=point; /保存鼠标按下得到点,也是绘制一个点 CView:OnLButtonDown(nFlags, point);在鼠标左键弹起消息响应函数中实现绘图,代码如下:OnLButtonUp(UINT nFlags, CPoint point) /创建并获得设备描述 CClientDC dc(this)

    6、; switch (m_nDrawType) case 1: dc.SetPixel(point,RGB(0,255,0); /*绘制点*/ break; case 2: /*绘制直线*/ dc.MoveTo(m_ptOrigin);/*调用MoveTo函数移动到原点*/ dc.LineTo(point);/*调用LineTo函数绘制到终点。*/ case 3: /*绘制矩形*/ dc.Rectangle(CRect(m_ptOrigin,point); case 4: /*绘制椭圆*/ dc.Ellipse(CRect(m_ptOrigin,point);OnLButtonUp(nFlags

    7、, point);在上述程序中,设置一个点,用到的函数是SetPixel,这也是CDC类的一个成员方法,该函数的生命形式如下:COLORREF SetPixel (POINT point,COLORREF crColor);该函数是在指定的点设置一个像素。其中第一个参数(point)是指定的点,第二个参数(crColor)是指定的颜色。在程序中设定的颜色在系统颜色表中可能不存在,但系统会选择一种和这个颜色最接近的颜色。RGB是一个宏,它有三个参数,分别代表红、绿、蓝三种颜色的值。这三个参数BYTE类型,取值范围为0255。RGB(0,0,0)是黑色,RGB(255,255,255)是白色,将这

    8、三个分量设置成为0255之间的任意值,从而得到各种不同的颜色。Windows系统为我们提供了一个画图程序,在该程序中,利用画笔可以绘制连续的线条,绘制连续的线条,首先要得到线条的起点,然后需要捕获鼠标移动过程中的每一个点,这可以通过捕获鼠标移动消息(WM_MOUSEMOVE)来实现。在此消息响应函数中,在依次捕获的各个点之间绘制一条条非常短的线段,从而就可以绘制出一条连续的线条。于是,我增加了一个鼠标移动消息(WM_MOUSEMOVE)的响应函数(OnMouseMove)。这样,只要鼠标在应用程序窗口中移动时都会进入到这个消息响应函数中。然后我为CMyview添加一个BOOL型的私有变量Dra

    9、w,当鼠标左键按下去时,此变量为真;当鼠标左键弹起时,此变量为假。主题程序代码 / 绘图板View.cpp : implementation of the CMyView class/#include stdafx.h绘图板.h绘图板Doc.h绘图板View.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CMyViewIMPLEMENT_DYNCREATE(CMyView, CView)BEGIN_MESSAGE_MAP(CMyView, CView) /AFX

    10、_MSG_MAP(CMyView) ON_COMMAND(ID_LINE, OnLine) ON_COMMAND(ID_LIANXUXIAN, OnLianxuxian) ON_COMMAND(ID_DOT, OnDot) ON_COMMAND(ID_RECGANGLE, OnRecgangle) ON_WM_LBUTTONDOWN() ON_WM_LBUTTONUP() ON_WM_MOUSEMOVE() ON_COMMAND(ID_CIRCLE, OnCircle) ON_COMMAND(ID_COLOR, OnColor) /AFX_MSG_MAP / Standard printing

    11、 commands ON_COMMAND(ID_FILE_PRINT, CView:OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CView: ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView:OnFilePrintPreview)END_MESSAGE_MAP()/ CMyView construction/destructionCMyView:CMyView() DrawType=0; savepoint=0; Draw=FALSE; m_color=(255,0,0);CMyView()BOOL CMyView:

    12、PreCreateWindow(CREATESTRUCT& cs) Modify the Window class or styles here by modifying / the CREATESTRUCT cs return CView:PreCreateWindow(cs);/ CMyView drawingvoid CMyView:OnDraw(CDC* pDC) CMyDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); add draw code for native data here/ CMyView printingOnPrepareP

    13、rinting(CPrintInfo* pInfo) / default preparation return DoPreparePrinting(pInfo);OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) add extra initialization before printingOnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) add cleanup after printing/ CMyView diagnosticsAssertValid() constAssertVal

    14、id();Dump(CDumpContext& dc) constDump(dc);CMyDoc* CMyView:GetDocument() / non-debug version is inline ASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CMyDoc); return (CMyDoc*)m_pDocument;#endif /_DEBUG/ CMyView message handlers savepoint=point; Draw=TRUE; switch (DrawType) /绘制椭圆 dc.Ellipse(CRect(savepoint

    15、,point); /绘制点 dc.SetPixel(point,m_color); /绘制直线 if(Draw=true) dc.MoveTo(savepoint); savepoint=point; break; /绘制矩形 dc.Rectangle(CRect(savepoint,point); Draw=FALSE;OnMouseMove(UINT nFlags, CPoint point) OnMouseMove(nFlags, point); /创建并获得描述 /绘制连续线 case 5: CPen pen1; CPen *oldPen; pen1.CreatePen(PS_SOLI

    16、D,2,m_color); CPen *Oldpen=dc.SelectObject(&pen1); if(Draw=true) dc.MoveTo(savepoint);/修改线段的起点 savepoint=point; /恢复描述 dc.SelectObject(Oldpen); break; ;OnCircle() DrawType=1; DrawType=2; DrawType=3;OnRecgangle() DrawType=4; DrawType=5;实验心得: 这次课程设计我成功的完成了。通过本次课程设计,我完成了用移动鼠标对直线,矩形,椭圆、连续线的简单绘制工具的的制作,其中完

    17、成了绘图形状的选择。 基于平时课外上机实验的练习,对菜单的创建,COMMAND消息处理函数和 UPDATE_COMMAND_UI消息函数的添加过程比较熟练,这部分还算简单。难的是代码的添加,对绘制图形的程序有大概的思路,但具体编写时变量的运用以及函数的调用设置。这次实验中关键就是确定画图起点及终点坐标,因为是用鼠标绘制图形,所以需用函数来捕获鼠标当前所在位置的坐标,因此我设置了OnLButtonDown()函数来捕获起点坐标,OnMouseMove()函数来捕获鼠标移动是的当前位置坐标,OnLButtonUp()函数来捕获终点坐标。而绘制图形使用的函数是OnPaint(),将图形的起点和终点坐

    18、标和鼠标的位置坐标相联系后就能用鼠标来绘制图形了,所以在它们之间用opoint和cpoint两变量实现链接。另外我觉得将绘图语句集中在OnPaint()函数中,然后其他函数来调用OnPaint()函数,这样不容易引起混乱,同时程序更简单,更有条理,便于修改。这次课程设计虽只是做了一个极其简单的绘图工具的制作,但也让我从设计者的角度看到了设计程序以及电脑软件工具的实质及难度,看似一个很简单的工具,其制作的背后工作是很大的,不光是图标,按钮的设置,程序的编写,代码的实现都是很精密且不容许一点错误的工作。平时我们使用的很顺手的一个小小工具,其开发的各项小号都不可小觑,由此,我们需要学的东西还太多太多

    19、。课程设计评分表学生姓名:余勇 班级:1122202 学号:201120220202 绘图板 项目内容满分实 评选题能结合所学课程知识、有一定的能力训练。符合选题要求(5人一题)10工作量适中,难易度合理能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力理论依据充分,数据准确,公式推导正确能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等能体现创造性思维,或有独特见解成果质量总体设计正确、合理,各项技术指标符合要求。说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰设计说明书栏目齐全、合理,符号统一、编号齐全。格式、绘图、表格、插图等规范准确,符合国家标准有一定篇幅,字符数不少于5000总 分100指导教师评语: 指导教师签名: 年 月 日


    注意事项

    本文(c简单绘图板解读Word文档下载推荐.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开