windows画饼图直方图.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验名称:使用Win32API 编程方法编写一个程序绘制直方图和饼图 程序设计要求:(根据实验内容填写)编写一个程序绘制直方图和饼图。该程序的主要功能是同时用直方图和饼图显示某一高校的博士研究生、硕士研究生、本科生和专科生的比例分布,并用文字和不同颜色表示学生的类别。要求通过设置坐标映射模式定义饼图和直方图的逻辑坐标原点、坐标方向和单位。查看MSDN了解CDC类成员函数SetMapMode, SetWindowOrg, SetViewportOrg,SetWindowExt,SelectObject, SetViewportExt,Rectangle, Pie的调用规则,CPen和CBrush类的使用。程序主要功能说明:(简述每项功能的操作方法以及程序的响应方式)出现博士研究生、硕士研究生、本科生和专科生的比例分布的柱状图和饼图,在程序段中:float zhuan=0.4,ben=0.3,shuo=0.2,bo=0.1;处修改各项比例,要求和为1,重新运行,则能重新绘图。程序设计思想:(简述实现每项功能需要编写的消息处理函数的实现步骤)需要改变字体,设置映射方式,转换坐标系,写出横纵坐标代表的含义画出横纵坐标,利用循环表示纵坐标刻度(3) 画柱状图,饼图,利用定义参数,变量,通过公式计算出柱图饼图的所占百分比。主要调用函数功能说明:(列出程序所调用的API函数和MFC类的成员函数的说明)使用MoveTo()和LineTo()绘制横纵坐标,调用SetViewportOrgEx()和SetMapMode(MM_LOMETRIC)绘制映射的逻辑坐标并规定相对应的尺度。利用CRect,CBrush和FillRect绘制带填充色的柱状图,使用Pie函数绘制饼图。程序设计步骤:(写出创建工程类型,资源编辑,创建类,添加变量和函数)创建工程类型:MFC Appwizard[exe],使用CpaintDC,该类一般用在响应WM_PAINT消息的函数OnPaint()中。??主要函数:??SetViewportOrgEx、SetMapMode、MoveTo()和LineTo()、FillRect()、Pie()SelectObject()、TextOut()。核心代码说明:(写出各个消息处理函数的语句及注释)voidCChildView::OnPaint() {CPaintDCdc(this); // device context for painting// 改字体LOGFONT log;CFont font;log.lfHeight=0;log.lfEscapement=0;log.lfItalic=0;log.lfUnderline=0;log.lfStrikeOut=0;//dc.SelectObject(font); font.CreateFontIndirect(log);//画笔CPenpen(PS_SOLID,1,RGB(0,0,0)); dc.SelectObject(pen); //*OldPen = dc.SelectObject(pen);//旧画笔//逻辑坐标SetViewportOrgEx(dc,50,500,NULL);dc.SetMapMode(MM_LOMETRIC);//0.1毫米//纵坐标dc.MoveTo(0,0);dc.LineTo(0,1000);//高1000dc.LineTo(-10,980);dc.MoveTo(0,1000);dc.LineTo(10,980); //纵坐标循环CStringstr;int i;for(i=1;i10;i++){ str.Format(%d,i*10);dc.TextOut(-30,i*100,str);}dc.TextOut(-50,1050,%);//横坐标dc.MoveTo(0,0);dc.LineTo(850,0);dc.LineTo(830,10);dc.MoveTo(850,0);dc.LineTo(830,-10);int x1,y1,x2,y2,y3,x3;floatzhuan=0.4,ben=0.3,shuo=0.2,bo=0.1;int h=1000,r=400;//画柱子dc.SelectObject(font); //修改字体CRectr1(100,zhuan*h,200,0);CBrushbr1(RGB(253,51,67));dc.FillRect(r1,br1);//矩形,颜色dc.TextOut(130,-10,专科);//横坐标的说明文字CRectr2(300,ben*h,400,0);CBrushbr2(RGB(250,164,51));dc.FillRect(r2,br2);dc.TextOut(3

文档评论(0)

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

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

1亿VIP精品文档

相关文档