请教怎么将基于单文档的绘图转化成基于对话框的绘图

请问如何将基于单文档的绘图转化成基于对话框的绘图
请问如何将基于单文档的绘图转化成基于对话框的绘图.
代码如下:
void CExample_4View::OnKline() 
{
// TODO: Add your command handler code here
CExample_4Doc*pDoc=GetDocument();
  ASSERT_VALID(pDoc);

  pDoc->m_ExaSet.MoveFirst();
  if(pDoc->m_ExaSet.IsBOF()||pDoc->m_ExaSet.IsEOF())
  return ;
  CClientDC ClientDC(this);
  OnPrepareDC(&ClientDC);
 
  CBrush Brush[3];
 
  CPen Pen[3];
 
  CBrush*PtrOldBrush;
  CPen*PtrOldPen;
 
  Pen[0].CreatePen(PS_SOLID,1,RGB(200,200,254));
  Pen[1].CreatePen(PS_SOLID,1,RGB(255,0,0));
Pen[2].CreatePen(PS_SOLID,1,RGB(0,255,0));
 
  Brush[0].CreateSolidBrush(RGB(254,254,234));
  Brush[1].CreateSolidBrush(RGB(255,0,0));
Brush[2].CreateSolidBrush(RGB(0,255,0));
 
  PtrOldPen=ClientDC.SelectObject(&Pen[0]);
  PtrOldBrush=ClientDC.SelectObject(&Brush[0]);
 
    LOGFONT logFont[2];
 
  logFont[0].lfHeight=24;
  logFont[0].lfWeight=0;
  logFont[0].lfEscapement=0;
  logFont[0].lfOrientation=0;
  logFont[0].lfWeight=FW_NORMAL;
  logFont[0].lfItalic=0;
  logFont[0].lfUnderline=0;
  logFont[0].lfStrikeOut=0;
  logFont[0].lfCharSet=ANSI_CHARSET;
  logFont[0].lfOutPrecision=OUT_DEFAULT_PRECIS;
  logFont[0].lfClipPrecision=CLIP_DEFAULT_PRECIS;
  logFont[0].lfQuality=PROOF_QUALITY;
  logFont[0].lfPitchAndFamily=VARIABLE_PITCH|FF_ROMAN;
  strcpy(logFont[0].lfFaceName,"Times New Roman");
  UINT position=20;
 
  logFont[1].lfHeight=16;
  logFont[1].lfWeight=6;
  logFont[1].lfEscapement=0;
  logFont[1].lfOrientation=0;
  logFont[1].lfWeight=FW_NORMAL;
  logFont[1].lfItalic=0;
  logFont[1].lfUnderline=0;
  logFont[1].lfStrikeOut=0;
  logFont[1].lfCharSet=ANSI_CHARSET;
  logFont[1].lfClipPrecision=CLIP_DEFAULT_PRECIS;
  logFont[1].lfQuality=PROOF_QUALITY;
  logFont[1].lfPitchAndFamily=VARIABLE_PITCH|FF_ROMAN;
  strcpy(logFont[1].lfFaceName,"Times New Roman");
 
  CFont font[2];
 
  font[0].CreateFontIndirect(&logFont[0]);
  font[1].CreateFontIndirect(&logFont[1]);
 
  CFont* oldFont=ClientDC.SelectObject(&font[0]);
 

  ClientDC.TextOut(210,position,"上证指数日K线图");
 
  ClientDC.Rectangle(92,55,517,310);
 

  ClientDC.SelectObject(&font[1]);
 
  int x0,ymin,ymax;
  int x1,x2,y1,y2;
int yl1,yl2,yl3,yl4;
  int recw=7;
int recwh=recw/2;
int xspc=5;
int yl=225;
float maxmaxp=(float)(1680.3);
float minminp=(float)(1529.35);
float scale;
  int loopn;
  CString fsl;
// COleDateTime fdt;
int fdt;

scale=(float)((yl-55)/(maxmaxp-minminp));

ClientDC.MoveTo(92,yl);
ClientDC.LineTo(517,yl);
fsl.Format("%g",1529.35);
ClientDC.TextOut(92-48,yl,fsl);

yl1=(int)(yl-(1680.3-1529.35)/3*scale);
ClientDC.MoveTo(92,yl1);
ClientDC.LineTo(517,yl1);
fsl.Format("%g",1529.35+(1680.3-1529.35)/3);
    ClientDC.TextOut(92-48,yl1,fsl);

yl2=(int)(yl-(1680.3-1529.35)/3*2*scale);
ClientDC.MoveTo(92,yl2);
ClientDC.LineTo(517,yl2);
fsl.Format("%g",1529.35+(1680.3-1529.35)/3*2);
ClientDC.TextOut(92-48,yl2,fsl);

    yl3=(int)(yl-(1680.3-1529.35)/3*3*scale);
ClientDC.MoveTo(92,yl3);
ClientDC.LineTo(517,yl3);
fsl.Format("%g",1680.30);
ClientDC.TextOut(92-48,55,fsl);

 
  x0=92+xspc+recwh+1;
while(!pDoc->m_ExaSet.IsEOF())
{
ClientDC.MoveTo(x0,305);
ClientDC.LineTo(x0,310);
x0=x0+xspc+recw;
pDoc->m_ExaSet.MoveNext();
}

 
x0=92+xspc+recwh+1;
loopn=1;
pDoc->m_ExaSet.MoveFirst();
while(!pDoc->m_ExaSet.IsEOF())
{
ymin=(int)(yl-(pDoc->m_ExaSet.m_f5-minminp)*scale);
ymax=(int)(yl-(pDoc->m_ExaSet.m_f4-minminp)*scale);
x1=x0-recwh;
x2=x0+recwh;
y1=(int)(yl-(pDoc->m_ExaSet.m_f1-minminp)*scale);
y2=(int)(yl-(pDoc->m_ExaSet.m_f2-minminp)*scale);
if(y1<y2)
{
ClientDC.SelectObject(&Pen[2]);
ClientDC.SelectObject(&Brush[2]);
ClientDC.Rectangle(x1,y1,x2,y2);

ClientDC.MoveTo(x0,ymin);
ClientDC.LineTo(x0,ymax);
}
else
{
ClientDC.SelectObject(&Pen[1]);
ClientDC.SelectObject(&Brush[1]);
ClientDC.Rectangle(x1,y1,x2,y2);

ClientDC.MoveTo(x0,ymin);
ClientDC.LineTo(x0,ymax);

}
if(loopn==1||fmod(loopn,8.0)==0)
{
// fdt=pDoc->m_ExaSet.m_fd;
ClientDC.TextOut(x0-20,310,fdt);
// ClientDC.TextOut(x0-20,310,fdt.Format(LOCALE_NOUSEROVERRIDE,LANG_USER_DEFAULT));
}
x0=x0+xspc+recw;
pDoc->m_ExaSet.MoveNext();
loopn=loopn+1;
 
  }
    ClientDC.SelectObject(PtrOldPen);
    ClientDC.SelectObject(PtrOldBrush);
    ClientDC.SelectObject(oldFont);

}
------解决方案--------------------