Creating an Empty Vector

Take the following steps to start a project and to add some code that creates a new empty vector handle, and attaches it to a window.

Note:

This example is for a 32-bit (NT or Windows 9x) environment.

 

1.

Start Visual C++, version 2005.

2.

Select the File->New->Project menu option

 

In the New Project dialog box, make sure to select "Visual C++" à "MFC" from the tree on the left of the dialog, and select "MFC Application" as the project template.

 

Give the project the name "Tutorial" and make sure to allocate your project under the following folder LEAD Technologies\LEADTOOLS 17\Examples\ClassLibrary\MSVC folder, then click OK.

3.

In the first wizard dialog, click "Next".

4.

In the next step, choose Single Document and click "Finish".

5.

From the main menu, choose Project->Properties

6.

In the "Configuration Properties" node, choose "C/C++", then "General".

7.

In the "Additional include directories" dialog box, enter the include\classlib directory of your LEADTOOLS installation. For example, if you installed LEADTOOS in c:\ltwin14x, enter c:\ltwin14x\include\classlib.

8.

Open TutorialDoc.h.

9.

Add the following line immediately before the class CTutorialDoc declaration:

#include "ltwrappr.h"

10.

Click on the "Class View" tab.

11.

Click to open the Tutorial Classes branch.

12.

Click "CTutorialApp", and then double click the CTutorialApp() constructor.

13.

Add the following lines after "//TODO: add construction code here":

LSettings::LoadLibraries (LT_KRN|LT_FIL|LV_KRN|LV_DLG);
LSettings::UnlockSupport (L_SUPPORT_VECTOR, L_KEY_VECTOR);

14.

In the "Solution Explorer", right-click your project "tutorial" and select "Add" à "New Item", and add a new CPP file and name it "Imports.cpp".

15.

Add the following code to "Imports.cpp" you just created (note, you may have to change the paths to match your LEADTOOLS installation folder):

#include "stdafx.h"
#if defined(WIN64) 
#pragma comment( lib, "..\\..\\..\\..\\..\\Lib\\CDLL\\x64\\ltwvc_x.lib")
#else
#pragma comment( lib, "..\\..\\..\\..\\..\\Lib\\CDLL\\Win32\\ltwvc_u.lib ")
#endif

16.

Click on the "Class View" tab.

17.

Right click "CTutorialDoc" and select "Add Variable..."

18.

For Variable Type enter LVectorWindow*, and for Variable name enter m_pVectorWindow. Leave Access as "Public" and click Finish.

19.

Click on the CTutorialDoc tree view branch, and double click the CTutorialDoc() constructor. Add the lines:

m_pVectorWindow = new LVectorWindow;
m_pVectorWindow->SetBackgroundColor (RGB(255, 255, 255));

20.

In the destructor, add the line:

delete m_pVectorWindow;

21.

In the ClassView, select the CTutorialView, in the Properties window select Messages shortcut, then select the WM_CREATE.

22.

Code the CTutorialView::OnCreate() function as follows:

int CTutorialView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
 if (CView::OnCreate(lpCreateStruct) == -1)
  return -1;
  
L_INT nRet = SUCCESS;
nRet = GetDocument()->m_pVectorWindow->SetWndHandle (m_hWnd);
    if(nRet!=SUCCESS)
    {
       LBase::DisplayErrorFromList ();
       return -1;
    }
    else
    {
       GetDocument()->m_pVectorWindow->AttachToWindow (m_hWnd);
    }

 return 0;
}

22.

Modify CTutorialDoc::OnNewDocument() to create a new vector with an empty vector layer. The function should look like this:

BOOL CTutorialDoc::OnNewDocument()
{
   if (!CDocument::OnNewDocument())
      return FALSE;

   //Empty the vector of all objects and layeres
   m_pVectorWindow->Empty ();
   
   //Create an empty vector layer layer
   VECTORLAYERDESC VectorLayerDesc;
   
   VectorLayerDesc.nSize = sizeof(VECTORLAYERDESC); 
   lstrcpy(VectorLayerDesc.szName, TEXT("First Layer"));
   VectorLayerDesc.bVisible = TRUE;
   VectorLayerDesc.bLocked = FALSE;
   VectorLayerDesc.dwTag = 0; 
   
   LVectorLayer MyLayer(&VectorLayerDesc);
   m_pVectorWindow->AddLayer (&MyLayer);
   m_pVectorWindow->SetActiveLayer (&MyLayer);
   
   m_pVectorWindow->Reset ();  
   return TRUE;
}

23.

Compile and run the project by selecting Build->Execute tutorial.exe from the menu. The program should display a white background drawn by the vector handle.