关于MFC绘图中的一个问题,请高手指点,非常感谢!
我新建了一个单文档的mfc工程后,添加了一个Shape新类,添加五个成员变量:COLORREFinnerColor;//图形填充颜色COLORREFoutlineColo...
我新建了一个单文档的mfc工程后,添加了一个Shape新类,添加五个成员变量:
COLORREF innerColor;//图形填充颜色
COLORREF outlineColor;//线条颜色
CPoint lastPoint;//图形的另一个端点
CPoint originPoint;//图形的一个的点
Shape的构造函数为:
Shape::Shape(Shape *addShape)
{
this->innerColor=addShape->innerColor;
this->lastPoint=addShape->lastPoint;
this->originPoint=addShape->originPoint;
this->outlineColor=addShape->outlineColor;
this->shapeType=addShape->shapeType;
}
因为程序中需要一个变量来记录画过的图形,所以把这些图形的Shape类对象放到一个数组中保存起来,我在View类中添加一个CArray<Shape>类的变量,发现不能添加,提示template declaration or defintions cannot be added,我加了头文件#include <afxtempl.h>还是有一样的错误,不知道是什么原因。后来我手动添加,提示如下错误:
error C2501: 'CArray' : missing storage-class or type specifiers;
error C2143: syntax error : missing ';' before '<';
之类的错误。请高手指点一下原因,谢谢! 展开
COLORREF innerColor;//图形填充颜色
COLORREF outlineColor;//线条颜色
CPoint lastPoint;//图形的另一个端点
CPoint originPoint;//图形的一个的点
Shape的构造函数为:
Shape::Shape(Shape *addShape)
{
this->innerColor=addShape->innerColor;
this->lastPoint=addShape->lastPoint;
this->originPoint=addShape->originPoint;
this->outlineColor=addShape->outlineColor;
this->shapeType=addShape->shapeType;
}
因为程序中需要一个变量来记录画过的图形,所以把这些图形的Shape类对象放到一个数组中保存起来,我在View类中添加一个CArray<Shape>类的变量,发现不能添加,提示template declaration or defintions cannot be added,我加了头文件#include <afxtempl.h>还是有一样的错误,不知道是什么原因。后来我手动添加,提示如下错误:
error C2501: 'CArray' : missing storage-class or type specifiers;
error C2143: syntax error : missing ';' before '<';
之类的错误。请高手指点一下原因,谢谢! 展开
2个回答
展开全部
CArray是空数组,构造函数CArray() ,定义一个数组点 CArray<CPoint,CPoint> ptArray;
增加元素
CPoint pt(10,20);
ptArray.Add(pt); // Element 0
ptArray.Add(CPoint(30,40)); // Element 1
你的 是CArray(Shape) ,应该是 Shape类型的问题 ,至于下面的提示
失踪的存储种类或类型说明符;
Shape 是 什么类型 的 ,你应该 没有声明吧,你可以查下msdn,仔细看看
应该就明白为什么了。
你的提供的信息就这么多,只能这样了。希望可以帮到你。
增加元素
CPoint pt(10,20);
ptArray.Add(pt); // Element 0
ptArray.Add(CPoint(30,40)); // Element 1
你的 是CArray(Shape) ,应该是 Shape类型的问题 ,至于下面的提示
失踪的存储种类或类型说明符;
Shape 是 什么类型 的 ,你应该 没有声明吧,你可以查下msdn,仔细看看
应该就明白为什么了。
你的提供的信息就这么多,只能这样了。希望可以帮到你。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询