Constructs and initializes the different member variables of the LVectorStock object.
#include "ltwrappr.h"
LVectorStock::LVectorStock(pStock = NULL)
LVectorStock::LVectorStock(pObject, pVector =NULL)
Pointer to a VECTORSTOCK structure that contains information used to create and initialize the new vector stock object.
Pointer to a VECTOROBJECT structure that contains information used to create and initialize the new vector stock object.
Pointer to an LVectorBase object with which the newly constructed vector stock object will be associated.
None.
LVectorStock::LVectorStock(pStock) is a constructor for the LVectorStock object. It takes a valid pVECTORSTOCKpointer and creates an LVectorStock object.
LVectorStock::LVectorStock(pObject, pVector=NULL) creates an LVectorStock object based on the information provided in pObject and associates the newly created LVectorStock object with the specified LVectorBase object. This constructor can be used with the LVectorLayer::EnumObjects function, which returns a valid pVECTOROBJECT pointer in the LVectorLayer::EnumObjectsCallBack member function. It can also be used with LVectorBase::VectorEventProcCallBack, which can also return a pObject.
Note that it is possible to construct an invalid LVectorStock object using the LVectorStock::LVectorStock(pObject, pVector=NULL) constructor. For example:
//pObject->nType == type other than VECTOR_STOCK
//LVectorBase *pVector is valid
LVectorStock MyVectorStock(pObject, pVectorBase);
if (MyVectorStock.IsTypeValid() == FALSE)
MessageBox(NULL, TEXT("Invalid Vector Object"), TEXT(""), MB_OK);
This is an example for LVectorStock::LVectorStock(pStock):
This example will add all of the stock objects from VecOfice.dll to the Active Layer of an LVectorBase object.
For an example for LVectorStock::LVectorStock(pObject, pVector=NULL), refer to LVectorArc::LVectorArc(pObject, pVector = NULL).
#define VECOFICE_OBJECT_COUNT 10
L_INT LVectorStock__LVectorStockExample(HWND hWnd, LVectorBase *pVector)
{
L_INT nRet;
VECTORSTOCK Stock;
L_INT iWidth = 10;
UNREFERENCED_PARAMETER(hWnd);
memset( &Stock, 0, sizeof(Stock));
// Load the VECOFICE library.
Stock.hInstDLL = LoadLibrary(MAKE_IMAGE_PATH(TEXT("VecOfice.dll")));
// Tell the toolkit to load the stock object using the hInstDLL member.
Stock.pszDLLName = NULL;
// Fill in default pen, brush
Stock.Pen.bExtPen = FALSE;
Stock.Pen.nSize = sizeof( VECTORPEN );
Stock.Pen.NewPen.LogPen.lopnStyle = PS_SOLID;
Stock.Pen.NewPen.LogPen.lopnWidth.x = 1;
Stock.Pen.NewPen.LogPen.lopnWidth.y = 1;
Stock.Brush.VectorBrushStyle = VECTORBRUSH_STANDARD;
Stock.Brush.nSize = sizeof( VECTORBRUSH );
Stock.Brush.BrushType.StandardBrush.LogBrush.lbStyle = PS_SOLID;
Stock.Brush.BrushType.StandardBrush.LogBrush.lbHatch = 0;
LVectorLayer VectorLayer;
nRet = pVector->GetActiveLayer(&VectorLayer);
if (nRet == SUCCESS)
{
Stock.Point[0].z = Stock.Point[1].z = 0;
for( Stock.nId = 0; Stock.nId <= VECOFICE_OBJECT_COUNT; Stock.nId++ )
{
Stock.Point[ 1 ].x = Stock.Point[ 0 ].x + iWidth;
Stock.Point[ 1 ].y = Stock.Point[ 0 ].y + iWidth;
// We want to have random colors for each object.
Stock.Pen.NewPen.LogPen.lopnColor = RGB( rand() % 256, rand() % 256, rand() % 256 );
Stock.Brush.BrushType.StandardBrush.LogBrush.lbColor = RGB( rand() % 256, rand() % 256, rand() % 256 );
LVectorStock VectorStock(&Stock);
nRet = VectorLayer.AddObject(&VectorStock);
if(nRet != SUCCESS)
return nRet;
Stock.Point[ 0 ].x += iWidth;
if( Stock.Point[ 0 ].x > 11 * iWidth )
{
Stock.Point[ 0 ].x = 0;
Stock.Point[ 0 ].y += iWidth;
}
}
nRet = pVector->SetParallelogram(NULL, NULL);
if(nRet != SUCCESS)
return nRet;
nRet = pVector->SetOrigin(NULL);
if(nRet != SUCCESS)
return nRet;
nRet = pVector->SetCamera(NULL);
if(nRet != SUCCESS)
return nRet;
}
else
{
MessageBox(NULL, TEXT("No Active Layer--Load a vector and run again"), TEXT(""), MB_OK);
return nRet;
}
//LVectorStock destructor called when VectorStock goes out of scope
return SUCCESS;
}