Start with the project you created in Working with Layers.
Take the following steps to start adding new layer and objects to the vector handle.
Note: This tutorial will only use 3 types of objects (Line, Ellipse and Polygon) to keep things simple. You can refer to Vector object types all object types supported by the vector toolkit.
Click the "Class View" tab of the project workspace.
Click to open the MyVectorWindow branch.
Double-click the MsgProcCallBack () member function.
Add the following code immediately before case '1':
case 'l':case 'L':{// add a new vector lineVECTORLINE Line;L_INT i;Line.Pen.nSize = sizeof( VECTORPEN );Line.Pen.bExtPen = FALSE;Line.Pen.NewPen.LogPen.lopnStyle = PS_SOLID;Line.Pen.NewPen.LogPen.lopnWidth.x = 1;Line.Pen.NewPen.LogPen.lopnWidth.y = 1;Line.Pen.NewPen.LogPen.lopnColor = RGB( rand() % 246 + 10, rand() % 246 + 10, rand() % 246 + 10 );// set the line start and end pointsfor( i = 0; i < 2; i++ ){Line.Point[ i ].x = rand() % 100;Line.Point[ i ].y = rand() % 100;Line.Point[ i ].z = rand() % 100;}LVectorLine VectorLine(&Line);// add to current active layerLVectorLayer VectorLayer;GetActiveLayer(&VectorLayer);VectorLayer.AddObject (&VectorLine );this->Reset ();}break;case 'e':case 'E':{VECTORELLIPSE Ellipse;Ellipse.Point.x = rand() % 100;;Ellipse.Point.y = rand() % 100;;Ellipse.Point.z = rand() % 100;;Ellipse.Pen.nSize = sizeof( VECTORPEN );Ellipse.Pen.bExtPen = FALSE;Ellipse.Pen.NewPen.LogPen.lopnStyle = PS_SOLID;Ellipse.Pen.NewPen.LogPen.lopnWidth.x = 2;Ellipse.Pen.NewPen.LogPen.lopnWidth.y = 2;Ellipse.Pen.NewPen.LogPen.lopnColor = RGB( rand() % 246 + 10, rand() % 246 + 10, rand() % 246 + 10 );Ellipse.Brush.nSize = sizeof(VECTORBRUSH);Ellipse.Brush.VectorBrushStyle = VECTORBRUSH_STANDARD;Ellipse.Brush.BrushType.StandardBrush.LogBrush.lbColor = RGB( rand() % 246 + 10, rand() % 246 + 10, rand() % 246 + 10 );Ellipse.Brush.BrushType.StandardBrush.LogBrush.lbStyle = BS_SOLID;Ellipse.xRadius = rand() % 10;;Ellipse.yRadius = rand() % 10;;LVectorEllipse VectorEllipse(&Ellipse);// add to current active layerLVectorLayer VectorLayer;GetActiveLayer(&VectorLayer);VectorLayer.AddObject (&VectorEllipse);Reset ();}break;case 'g':case 'G':{VECTORPOLYGON Polygon;L_INT i;//Create Polygon ObjectPolygon.Pen.nSize = sizeof( VECTORPEN );Polygon.Pen.bExtPen = FALSE;Polygon.Pen.NewPen.LogPen.lopnStyle = PS_SOLID;Polygon.Pen.NewPen.LogPen.lopnWidth.x = 2;Polygon.Pen.NewPen.LogPen.lopnWidth.y = 2;Polygon.Pen.NewPen.LogPen.lopnColor = RGB( rand() % 246 + 10, rand() % 246 + 10, rand() % 246 + 10 );// set the polygon brushPolygon.Brush.nSize = sizeof( VECTORBRUSH );Polygon.Brush.VectorBrushStyle = VECTORBRUSH_STANDARD;Polygon.Brush.BrushType.StandardBrush.LogBrush.lbColor = RGB( rand() % 246 + 10, rand() % 246 + 10, rand() % 246 + 10 );Polygon.Brush.BrushType.StandardBrush.LogBrush.lbStyle = BS_SOLID;Polygon.Brush.BrushType.StandardBrush.LogBrush.lbHatch = 0;Polygon.nPointCount = rand() % 5 + 3;Polygon.Point = (pVECTORPOINT) malloc(Polygon.nPointCount * sizeof( VECTORPOINT ) );for( i = 0; i < Polygon.nPointCount; i++ ){Polygon.Point[ i ].x = rand() % 100;Polygon.Point[ i ].y = rand() % 100;Polygon.Point[ i ].z = rand() % 100;}// set polygon fill modePolygon.nPolyFillMode = VECTOR_POLY_ALTERNATE;LVectorPolygon VectorPolygon(&Polygon);// add to current active layerLVectorLayer VectorLayer;GetActiveLayer(&VectorLayer);VectorLayer.AddObject (&VectorPolygon);free( Polygon.Point );Reset ();}break;
Compile and run the demo.
Hit the 'L' key to create random lines. Hit the 'G' key to create random polygons. Hit the 'E' key to create random ellipses.