16,472
社区成员
发帖
与我相关
我的任务
分享
void CAaDlg::OnOK()
{
// TODO: Add extra validation here
CFileDialog fileopendlg(true);
if (fileopendlg.DoModal() == IDOK)
{
filename = fileopendlg.GetPathName();
}
m_draw=1;
OnPaint()
m_draw=0;
//CDialog::OnOK();
}
void CAaDlg::OnPaint()
{
fstream file2;
double t,x,y,z;
double max_t,max_xa,max_xb;
double xstep,ystep;
CPaintDC dc(this);
fstream file1;
CPen* pPenBlue = new CPen; //创建画笔对象
pPenBlue->CreatePen(PS_SOLID, 2, RGB(0,0,255)); //蓝色画笔
CPen* pPenBlack = new CPen; //创建画笔对象
pPenBlack->CreatePen(PS_SOLID, 1, RGB(0,0,0)); //黑色画笔
//选中黑色画笔,并保存当前画笔
CGdiObject* pOldPen = dc.SelectObject(pPenBlack);
int i = 0;
CString str;
//绘制坐标系
CPoint OPos(15,200),NowPos;
//绘制x坐标轴
dc.MoveTo(OPos);
NowPos.x = 650;
NowPos.y = 200;
dc.LineTo(NowPos);
//绘制箭头
dc.LineTo(645,195);
dc.MoveTo(650,200);
dc.LineTo(645,205);
//dc.MoveTo(15,200);
for (i = 0;i < 11;i++)
{
dc.MoveTo(15+62*i,OPos.y);
dc.LineTo(15+62*i,OPos.y - 5);
}
//绘制y轴坐标系数
dc.MoveTo(15,0);
dc.LineTo(15,400);
//绘制箭头
dc.MoveTo(15,0);
dc.LineTo(20,5);
dc.MoveTo(15,0);
dc.LineTo(10, 5);
for (i = -9;i < 10;i++)
{
dc.MoveTo(15,OPos.y-20*i);
dc.LineTo(20,OPos.y - 20*i);
}
if (m_draw == 1)
{
file2.open(filename);
file2>>t>>x;
max_xa=x;
max_xb=x;
while(1)
{
if (file2.eof())
{
break;
}
file2>>t>>x;
max_t=t;
if (max_xa<x)
{
max_xa=x;
}
if (max_xb>x)
{
max_xb=x;
}
}
//file2.seekg(0,ios::beg);
xstep=(max_t/1000+1)*100;
ystep=((max_xa-max_xb)/100+1)*5;
for (i = 0;i < 11;i++)
{
dc.MoveTo(15+62*i,OPos.y);
if (i % 2 == 0)
{
str.Format("%d",xstep*i);
dc.TextOut(OPos.x +62*i-5,OPos.y+1,str);
}
}
for ( i = -9;i < 10;i++)
{
dc.MoveTo(15,OPos.y-20*i);
if (i % 2 != 0)
{
str.Format("%d",i*ystep);
dc.TextOut(0,OPos.y-20*i-5,str);
}
}
file2.close();
}
else
{
for (i = 0;i < 11;i++)
{
dc.MoveTo(15+62*i,OPos.y);
if (i % 2 == 0)
{
str.Format("%d",i);
dc.TextOut(OPos.x +62*i-5,OPos.y+1,str);
}
}
for (i = -9;i < 10;i++)
{
dc.MoveTo(15,OPos.y-20*i);
if (i % 2 != 0)
{
str.Format("%d",i);
dc.TextOut(0,OPos.y-20*i-5,str);
}
}
}
}