我的程序执行顺序:输入参数a,b,c后点确认键,就开始画图但我如果想换个参数重画,就必须先关了程序再开而我希望的是每按一次确认键就按参数画一遍我该怎么改?谢谢指教!void CDialog1::OnButton1() 
{   double t = 0.0; double a,b,c,k;
this->UpdateData(); a = this->m_d;
b = this->m_e;
c = this->m_f; CPaintDC dc(this); dc.SetMapMode(MM_ANISOTROPIC);
dc.SetWindowOrg(-32000,32000);
dc.SetWindowExt(int(2000*32.000),-32000*2); CRect rc;
GetClientRect(rc);
dc.SetViewportOrg(0,70);
dc.SetViewportExt(rc.Width(),rc.Height()-70); CPen pen(PS_SOLID,1,RGB(0,0,255)),*pOldPen;


pOldPen = dc.SelectObject(&pen); dc.BeginPath();
dc.SelectObject(&pen);
dc.MoveTo(-32000,0);
dc.LineTo(32000,0);
dc.MoveTo(0,-32000);
dc.LineTo(0,32000);
dc.MoveTo(-32000,-32000);
         dc.LineTo(32000,32000);
dc.MoveTo(-32000,int(FunMove(-32.0,k,a,b,c)*1000));

                        for( t = -32.000+0.02;t<= 32.000;t+=0.01)
{
double y ;
y = int(FunMove(t,k,a,b,c)*1000);

dc.LineTo(int(1000*t),y);   
}
dc.EndPath();
dc.StrokePath();      CDialog::OnPaint();}

解决方案 »

  1.   

    最后要
    dc.SelectObject(pOldPen);
    有没有其他问题,还没仔细看
      

  2.   

    使用三个编辑框,然后填写a,b,c的值,点确认键就可以画图了。
    如果想换个参数重画,只要改变三个编辑框中a,b,c的值。
      

  3.   

    为何要调用基类的onpaint?dc.SelectObject(pOldPen);是有必要的你在每次画之前用背景色填充client区域,不然上次画的结果还在
      

  4.   

    dc.SelectObject(pOldPen);是我刚贴上来时删掉了我现在的问题是换参数后点确认键,没有任何反应补充说明:输参数的编辑框,确认键,图形的输出都在同一窗口谢谢指教!
      

  5.   

    CPaintDC dc(this);
    int nSave = dc.SaveDC()每次画图之前先savedc以下
    CPaintDC dc(this);
    int nSave = dc.SaveDC()
    最后再调用RestoreDC
    dc.RestoreDC(nSave);