本人在对话框中画图,程序中动态生成了很多点,我只用了MoveTo()和lineto()两个函数把这些点连接起来,也就是说我得曲线是很多细小直线组成的,不是很正规的曲线,现在要求重画失效区,不知道大家看明白没有????????CPen pen1;
// Do not call CDialog::OnPaint() for painting messages
//曲线重画
pen1.DeleteObject();
pen1.CreatePen(PS_SOLID,0.5,RGB(255,0,0));
dc.SelectObject(&pen1);
//创建画笔
int i;
CRect rectClip;
dc.GetClipBox(&rectClip);//得到失效区域
CPtrList m_ptrList;
POSITION pos=m_ptrList.GetHeadPosition();
for(;pos!=NULL;m_ptrList.GetNext(pos))
  {CPoint* point0=(CPoint*)m_ptrList.GetAt(pos);//得到一个点
  if(rectClip.PtInRect(myvane.maxPoint[int(point0->x)+1]))//判断紧接着的下一个点是否在失效区域内,如果在的话,就重画
  {dc.MoveTo(*point0);
  dc.LineTo(myvane.maxPoint[int(point0->x)+1]);}}