在主窗口类CMoveLineDlg的头文件中加入了
<br>#include <afxtempl.h>
<br>下面是主要的一些函数:(CMoveLineDlg是主窗口类)
<br>void CMoveLineDlg::OnTimer(UINT nIDEvent)
<br>{ if (nIDEvent==1)
<br>{
<br>if (nPoint> =pointarray.GetSize())
<br>{KillTimer(1);}
<br>else
<br>{
<br>nPoint++;
<br>Invalidate(FALSE);
<br>}
<br> }
<br>CDialog::OnTimer(nIDEvent);
<br>}
<br>
<br>void CMoveLineDlg:

ineDDACallback(int x_1,int y_1,LPARAM lpdc)
<br>{
<br> pointarray.Add(CPoint(x_1,y_1)); //一直是这儿出错
<br>}
<br>
<br>void CMoveLineDlg::StartDraw()
<br>{
<br>pointarray.RemoveAll();
<br>nPoint = 0;
<br>CDC* pDC=GetDC(); //获取当前设备环境句柄
<br>LineDDA(110,215,271,158,(LINEDDAPROC)LineDDACallback,(long)pDC);
<br>SetTimer(1,10,NULL);
<br>
<br>}
<br>
<br>可是编译时,出现如下错误:
<br>error C2228: left of .Add must have class/struct/union type
<br>
<br>我知道这可能是因为没有声明或没有引入对应的头文件。我查了MSDN.Add也确实是CArray的一个方法。
<br>可是我已经引入了afxtempl.h的头文件(#include <afxtempl.h> ),而且在主窗口中也声明了pointarray:
<br>CArray <CPoint,CPoint&> pointarray;
<br>int nPoint;
<br>void StartDraw();
<br>
<br>后来把#include <afxtempl.h> 放到了stdafx.h中
<br>还是出现同样的错误!
<br>不知道各位遇到过这种情况没有?