vc++坐标点规划的问题

a13112101001 2014-07-31 09:58:18
读取了一个保存坐标数据的txt文件,如何让这些坐标点运行后显示为红点呢,该如何添加程序,以及它自动画线速度太快了,如何减缓,求添加程序说明,谢谢。

CFileDialog dlg(TRUE); // 定义一个文件对话框变量
if(dlg.DoModal()==IDOK)
{
CString m_FilePath = dlg.GetPathName(); //取得文件路径及文件名
CStdioFile File;
File.Open(m_FilePath,CFile::modeRead); //以读模式打开文本文件
CString FileData; //定义一个CString变量作为缓冲区
File.ReadString(FileData);//读取第一行数据,第一行数据为坐标点数据
/*定义两个临时字符串,并初始化为'/0'*/
char TempStr1[10];
char TempStr2[10];
memset(TempStr1,'/0',10);
memset(TempStr2,'/0',10);
sscanf(FileData,"%s",TempStr1);
m_PointNum = atoi(TempStr1); // 获取坐标点个数
/*逐行读取坐标数据*/
for (int i = 0;i<m_PointNum;i++)
{
File.ReadString(FileData);
sscanf(FileData,"%s %s",TempStr1,TempStr2);

m_PointArray.Add(CPoint(atoi(TempStr1),atoi(TempStr2)));//将其存入坐标点数组

}

CDC *pDC = GetDC(); //获取设备环境;

/*根据坐标点绘出直线*/

for (i = 0;i<m_PointNum-1;i++)
{

pDC->MoveTo(m_PointArray[i].x,m_PointArray[i].y);
pDC->LineTo(m_PointArray[i+1].x,m_PointArray[i+1].y);

}
ReleaseDC(pDC); //使用完后,释放设 备环境
}

}
...全文
122 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2014-09-01
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
a13112101001 2014-07-31
  • 打赏
  • 举报
回复
求大神帮忙啊
lx624909677 2014-07-31
  • 打赏
  • 举报
回复
加Sleep来控制时间,或响应OnTimer来控制时间间隔,其实和动画一样的道理
a13112101001 2014-07-31
  • 打赏
  • 举报
回复
有程序参考吗,谢谢
叶恭介叶恭介 2014-07-31
  • 打赏
  • 举报
回复
用定时器路。 还有画点呢,不用一个一个的画的。GDI+里有个DrawLines函数,通过传进去的点数组和数组长度,进行画线,你可以首先读取全部的点数据到点数组,然后通过定时器不断更改DrawLines传进去的数组长度达到一点一点的画出来效果。 PS:是使用双缓冲,才不会闪
a13112101001 2014-07-31
  • 打赏
  • 举报
回复
楼上改变的只是线颜色,我要的是读取的坐标点标识为红色,速度用定时器也试过好多,但是不行,不知哪里错了,求继续请教,谢谢
fishion 2014-07-31
  • 打赏
  • 举报
回复
CPen pen(PS_SOLID, 1, RGB(255, 0, 0)); pDC->SelectObject(&pen) 设置为红色 设置太快的,可以用定时器或者线程来处理,或者就是发送窗口消息

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧