vc 读入txt中的数据 根据数据画图 基于对话框的mfc txt中是一个5维数组,用4列做Y轴第5列做X轴

button1打开TXT文本,点击button2根据数据画图打开TXT的代码已写好了,求剩下的部分给点代码求帮助啊... button1 打开TXT文本 ,点击button2 根据数据画图 打开TXT的代码已写好了,求剩下的部分 给点代码 求帮助啊 展开
 我来答
拥云庄主
推荐于2017-09-02 · TA获得超过2501个赞
知道小有建树答主
回答量:672
采纳率:100%
帮助的人:412万
展开全部

把数据读取到一个CPoint数组中去,然后用GDI绘曲线就行了。CPoint数组根据你txt文件动态分配内存,然后在你要画图的地方添加修改下面的代码:

 CRect rc ;

//获得绘图控件的指针,可以是静态文本框(比如你给的图上面的Static),图片框等,用图片框比较好。IDC_PIC_CONTAINER是控件ID

 CStatic *pPic = (CStatic*)GetDlgItem(IDC_PIC_CONTAINER);
 pPic->GetClientRect(&rc);//获得控件客户区大小
 CDC *pDC = pPic->GetDC();//获取绘图DC

 int cx=rc.right;//控件宽度

 int cy=rc.bottom;//控件高度

 pDC->SetMapMode(MM_ISOTROPIC);//X=Y  

 pDC->SetWindowExt(1000,1000);//设置窗口坐标系的大小

 pDC->SetViewportExt(cx,-cy);//定义输出视口,X向右,Y向上

 //pDC->SetViewportOrg(cx/2,cy/2);//设置坐标原点在中心
 pDC->SetViewportOrg(0,cy);//设置坐标原点在左下角

//画一条从坐标原点到右上角的直线

 pDC->MoveTo(0,0);
 pDC->LineTo(1000,1000);

//创建一个紫色的平滑线的画笔,用来画曲线

 CPen pen(PS_SOLID, 1, RGB(255,0,255));
 pDC->SelectObject(pen);

//我这里的点数组是定义死的,你可以根据txt内容动态分配内存

 CPoint arryPoint[10];
 srand(time(NULL));

 for (int i = 0; i <10; ++i)
 {
//生成随机数,画随机曲线

  arryPoint[i].x = rand() % 1000 + 1;
  arryPoint[i].y = rand() % 1000 + 1;
 } 

//画出曲线
 pDC->Polyline(arryPoint, 10);

//删除画笔

 pen.DeleteObject();

 

这样就可以了,如果你要实现窗口重绘的话,将上面的代码放在对话框的OnPaint处理函数中去即可。

实际效果截图:

 

紫色的是随机生成的曲线,黑色的是从原点到右上角的直线。不明白的再追问吧。 

来自月岩仪态万千的比目鱼
2013-05-22 · TA获得超过1571个赞
知道小有建树答主
回答量:1221
采纳率:50%
帮助的人:956万
展开全部

这个是自己做的,根据数据在控件上画图。

主要使用的是MoveTo、LineTo。

看了这个例子,就会了~

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式