1. |
Start Visual C++ 2005 |
2. |
Select the File->New menu option, click the "projects" tab. |
3. |
From "Project Types" click on Visual C++ to expand it, then select MFC. From the right window select MFC Application. |
4. |
In the Project Name dialog box, enter "VecAut". |
5. |
In the Location dialog box, use the examples\ClassLibrary\MSVC directory of your LEAD installation. For example, if you installed LEADTOOLS in c:\ltwin17x, enter c:\ltwin17x\examples\classlibrary\MSVC\ Click OK. Then click "Next" |
6. |
Choose Single Document and click "Finish", and then OK. |
7. |
Click on the "Solution Explorer" tab, and then click on the VecAut project to expand it. Click on the Header files, then Open VecAut.h. |
8. |
Add the following line immediately before the class CVecAutApp declaration, (keep in mind, you may have to change the path to where the header files reside): |
#include "..\..\..\..\..\include\ClassLib\ltwrappr.h" 9. |
Click on the "Class View" tab. |
10. |
Click to open the" VecAut Classes" branch. |
11. |
Click "CVecAutApp", and then double click the CVecAutApp() constructor. |
12. |
Add the following lines after |
LBase::LoadLibraries(LT_KRN|LT_FIL|LV_KRN|LT_TLB|LT_AUT|LT_CON);L_TCHAR * pszLicenseFile = L"Replace this with the path to the LEADTOOLS license file";L_TCHAR * pszDeveloperKey = L"Replace this with your developer key";LSettings::SetLicenseFile(pszLicenseFile, pszDeveloperKey);
| 13 | Create a new file called Imports.cpp in place it beside your project files. | |
| a. | n the Project Workspace, click the Solution Explorer tab. | |
| b. | Double-click the VecAut folder to open it. | |
| c. | Right-click the Source files folder and select Add New item. | |
| d. | Right-click on the Source file | |
| e. | Expand Visual C++ tree, if it is not already expanded. | |
| f. | Select Code from the sub tree. | |
| g. | Select C++ File (.cpp) from the right window. | |
| h. | In the name text box, specify Imports. | |
| i. | Click the OK button. | |
| j. | Double-click the imports.cpp in the solution Explorer and add the following lines: | |
#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 // #if defined(WIN64)
14. |
Click on the "Class View" tab. |
15. |
Right click "CVecAutDoc" and select Add "Add Variable..." |
16. |
For Variable Type enter LVectorWindow, and for Variable Declaration put m_VectorWindow. Leave Access as "Public" and click OK. |
17. |
Right click "CVecAutDoc" and select Add "Add Variable..." |
18. |
For Variable Type enter LContainer, and for Variable Declaration put m_Container. Leave Access as "Public" and click OK. |
19. |
Right click "CVecAutApp" and select Add "Add Variable..." |
20. |
For Variable Type enter LAutomation, and for Variable Declaration put m_Automation. Leave Access as "Public" and click OK. |
21. |
Right click "CVecAutApp" and select Add "Add Variable..." |
22. |
For Variable Type enter LToolbar, and for Variable Declaration put m_Toolbar. Leave Access as "Public" and click OK. |
23. |
Click to open the CMainFrame branch. Double click the CMainFrame() constructor and add code so that the constructor looks like the following: |
CMainFrame::CMainFrame(){theApp.m_Automation.Initialize ();theApp.m_Automation.Create (AUTOMATION_MODE_VECTOR);theApp.m_Toolbar. Initialize ();}
24. |
Double click the CMainFrame::OnCreate() member function, and add the following code immediately after the first opening bracket {: |
theApp.m_Toolbar.Create (m_hWnd, (L_TCHAR*)TEXT("Vector"), TOOLBAR_VECTOR);theApp.m_Toolbar.SetRows (8);POINT pt;RECT rcClient;GetClientRect(&rcClient);ClientToScreen(&rcClient);pt.x = rcClient.left;pt.y = rcClient.top;theApp.m_Toolbar.SetPosition (&pt,TOOLBAR_POSITION_TOP | TOOLBAR_POSITION_LEFT);theApp.m_Automation.SetToolbar (&theApp.m_Toolbar);
25. |
Right click the CMainFrame branch, and choose "Properties". |
26. |
From the "Properties" window toolbar, click on the Message icon. Then click on the empty area beside the item "WM_DESTROY" and choose OnDestroy. |
27. |
Add the following code after the opening bracket {: |
CVecAutDoc* pDoc = (CVecAutDoc*)GetActiveDocument( );theApp.m_Automation.RemoveContainer (&pDoc->m_Container);pDoc->m_Container.Free();if (theApp.m_Automation.IsValid ()){theApp.m_Toolbar.Free ();theApp.m_Automation.Free ();}
28. |
Right click the CVecAutView class, and choose "Properties". |
29. |
From the "Properties" window toolbar, click on the Message icon. Then click on the empty area beside the item "WM_CREATE" and choose OnCreate. |
30. |
Add the following code to replace the |
GetDocument()-> m_VectorWindow.SetBackgroundColor (m_hWnd);GetDocument()->m_VectorWindow. AttachToWindow(m_hWnd);GetDocument()->m_Container.Initialize ();GetDocument()->m_Container.Create(m_hWnd);theApp.m_Automation.AddContainer (&GetDocument()->m_Container,GetDocument()->m_VectorWindow. GetHandle());theApp.m_Automation.SetActiveContainer (&GetDocument()->m_Container);
31. |
Right click the CVecAutView class, and choose "Properties". |
|
From the "Properties" window toolbar, click on the Message icon. Then click on the empty area beside the item "WM_SIZE" and choose OnSize. |
32. |
Add the following code to replace the |
CONTAINERMETRICS ContainerMetrics;RECT Rect;SetRect( &Rect, 0, 0, cx, cy );ContainerMetrics.nSize = sizeof( CONTAINERMETRICS );ContainerMetrics.dwMask = CMF_LIMITS;CopyRect( &ContainerMetrics.rcLimits, &Rect );GetDocument()->m_Container.SetMetrics (&ContainerMetrics);
33. |
Click on CVecAutDoc tree view branch, and double click the CVecAutDoc() constructor. Add the line: |
m_VectorWindow. SetBackgroundColor (RGB(255,255,255)); 34. |
Double click the CVecAutDoc branch to open VecAutDoc.h. Add the following include immediately before the class declaration: |
#include "C:\LEADTOOLS 19\Include\classlib\ltwrappr.h" 35. |
Open MainFrm.cpp and add the following lines after #include "MainFrm.h": |
#include "VecAut.h"#include "VecAutDoc.h"extern CVecAutApp theApp;
36. |
Open VecAutView.cpp and add the following lines after #include "VecAutView.h": |
#include "VecAut.h"extern CVecAutApp theApp;
37. |
Click on the "Resource View" tab of the project workspace and click to open the "VecAut resources" branch, and then click to open the "Menu" branch. |
38. |
Double-click IDR_MAINFRAME. |
39. |
Click "View" and add a menu item called "Vector Toolbar". |
40. |
Right click on the newly created item and choose "Add Event handler" |
41. |
From the "Class name" drop down box elect "CVecAutApp". |
42. |
From the "Messages" list box select "COMMAND" and click "Add and Edit..." |
|
Code the function as follows: |
void CVecAutApp::OnViewVectortoolbar(){L_BOOL bVisible;bVisible = m_Toolbar.IsVisible ();m_Toolbar. m_Toolbar.SetVisible (!bVisible);}
43. |
Right click on the "Vector Toolbar" item again and choose "Add Event handler" |
44. |
From the "Class name" drop down box elect "CVecAutApp". |
45. |
From the "Messages" list box select "UPDATE_COMMAND_UI" and click "Add and Edit" |
46. |
Click "Edit Code", and Add code to the two newly created member functions as follows: |
void CVecAutApp::OnUpdateViewVectortoolbar(CCmdUI* pCmdUI){pCmdUI->SetCheck(m_Toolbar. IsVisible ());}
47. |
Modify CVecAutDoc::OnNewDocument() to create a new vector with an empty vector layer. The function should look like this. |
BOOL CVecAutDoc::OnNewDocument(){if (!CDocument::OnNewDocument())return FALSE;//Empty the vector of all objects and layersm_VectorWindow. Empty ();//Create an empty vector layerVECTORLAYERDESC VectorLayerDesc;VectorLayerDesc.nSize = sizeof(VECTORLAYERDESC);lstrcpy(VectorLayerDesc.szName, TEXT("First Layer"));VectorLayerDesc.bVisible= TRUE;VectorLayerDesc.bLocked = FALSE;VectorLayerDesc.dwTag = 0;LVectorLayer MyLayer(&VectorLayerDesc);m_VectorWindow.AddLayer (&MyLayer);m_VectorWindow.SetActiveLayer (&MyLayer);m_VectorWindow.EnableAutoScroll (TRUE);VECTORPOINT min, max;min.x = min.y = min.z = max.z = 0.0;max.x = max.y = 100.0;m_VectorWindow.SetParallelogram (&min,&max);m_VectorWindow.Reset ();return TRUE;}
48. |
Compile and run the project by selecting Build->Execute VecAut.exe from the menu. Choose "View->Vector Toolbar" from the menu and begin drawing with the vector tools. |