MFC实现简单画图形程序.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MFC实现简单画图形程序

《MFC编程及应用》课程设计报告 题目: 简单画图形程序 学号: 姓名: 指导老师: 时间: 评语: 程序设计步骤: 建立基于对话框的应用程序框架;CMy0910200155Dlg类中关键变量的作用: CPtrArray pta; //用于保存已绘图形的相关信息。 CMemoryNode *pmN; //指向CMemoryNode类的指针,程序运行过程中动态保存对象信息。 CMemoryNode *pmn; //指向CMemoryNode类的指针,从文件中读取信息时动态创建类的对象。 COLORREF m_CurrentBrushColor; //用于存放当前画刷的颜色。 COLORREF m_CurrentPenColor; //用于存放当前画笔的颜色。 int num; // 用于存放从Index.txt文件中读取的数字。 int flag=0; //用于标识:当为1时,表示按下了”画图”按钮;当为2时,表示按下了”撤消”按钮;当为3时,表示按下了”加载历史”按钮,则从文件中读取信息。 int mark; //用于标识:当为0时,表示刚画过矩形;当为1时,表示刚画过圆角矩形;当为2时,表示刚画过椭圆。 int index; //用于存放pta的容量int flag1=0; //用于标识,和flag搭配,用来处理多种情况下的窗口重绘问题。 int ButtonState=0; //用于标识,是类CShow和类CMy0910200155Dlg的一个接口,通过其值在1和0之间转换,来处理弹出式对话框的初次绘制和移动时的重绘问题。 CMemoryNode类中变量的作用: COLORREF BrushColor;COLORREF PenColor; int Mark; //以上三者为类CMemoryNode的成员变量,分别用来保存 绘图时画刷颜色,画笔颜色和形状。 与控件相关联的变量::m_PenColor.SetCurSel(0); m_BrushColor.SetCurSel(4); m_Shape.SetCurSel(2); //设置光标初始定位。 m_CurrentBrushColor=RGB(0,0,255); //画刷颜色设置默认初值为蓝色。 m_CurrentPenColor=RGB(255,0,0); //画笔颜色设置默认初值为红色。 this-SetWindowText(简单画图形程序); //设置窗口标题。 RECT rect; this-GetWindowRect(rect); //得到窗体的大小。 CRgn rgn; rgn.CreateRoundRectRgn( rect.left+3,rect.top+5,rect.right-2,rect.bottom-2,40,40); this-SetWindowRgn((HRGN)rgn.GetSafeHandle(),TRUE); //按要求绘制圆角矩形的窗体。ifstream infile1(Index.txt,ios::nocreate); if(!infile1) this-GetDlgItem(IDC_BUTTON_LOAD)-EnableWindow(FALSE); //通过Index.txt文件是否存在来决定”加载历史”按钮的状态,如果存在则可用,否则不可用。 窗口绘制过程: 此过程调用OnPaint()函数,涉及多种情况下的图形绘制和窗口重绘,是相对比较核心的部分,将在后面具体逐个分析。 从某一次程序运行的角度说明各个函数的功能: 首先打开应用程序,系统将自动创建窗体,在窗体弹出的一瞬间,你会发现窗体是圆角形的,其次感觉颜色比较柔和。这归功于初始化中的: RECT rect; this-GetWindowRect(rect); CRgn rgn; rgn.CreateRoundRectRgn( rect.left+3,rect.top+5,rect.right-2,rect.bottom-2,40,40); this-SetWindowRgn((HRGN)rgn.Get

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档