Vector Load and Save
Start with the project you created in Creating an Empty Vector Handle and Attaching it to a Window.
Take the following steps to add vector load and save functionality:
1. |
Select File->New menu option, and in the dialog box, select Resource Script and press Enter. |
2. |
Right click the script you just created. Select Insert and then Menu from the dialog box that appears and click OK. |
3. |
Create this Menu structure: |
IDR_MENU1
&File
&Open… with ID = IDM_FILE_OPEN
&Save… with ID = IDM_FILE_SAVE
E&xit with ID = IDM_FILE_EXIT
4. |
Select File->Save from the menu. Enter Tutorial.rc in the Save As box and click Save. |
5. |
Select Insert->Files into Project. Browse to the Tutorial.rc file that was just created and click Add. |
6. |
Add the following line right under #include "c:\lead\include\lvkrn.h": |
#include "resource.h"
7. |
Change the line: |
WndClass.lpszMenuName = NULL;
in the WinMain function to
WndClass.lpszMenuName = MAKEINTRESOURCE( IDR_MENU1 );
8. |
Add these local variables under HDC hDC; in the WndProc function: |
static OPENFILENAME OpenFileName;
static L_TCHAR szFileName[ _MAX_PATH ];
static L_TCHAR szFileTitle[ _MAX_PATH ];
static L_TCHAR *szFilter[] = { TEXT("All Files\0*.*\0") };
L_INT nRet;
9. |
Add these lines right after ResetView( hWnd, &Vector ); in WM_CREATE handle: |
// reset the OPENFILENAME structure
memset( &OpenFileName, 0, sizeof( OPENFILENAME ) );
OpenFileName.lStructSize = sizeof( OPENFILENAME );
OpenFileName.hwndOwner = hWnd;
OpenFileName.lpstrFilter = szFilter[ 0 ];
OpenFileName.lpstrFile = szFileName;
OpenFileName.nMaxFile = _MAX_PATH;
OpenFileName.lpstrFileTitle = szFileTitle;
OpenFileName.nMaxFileTitle = _MAX_PATH;
10. |
Add these lines after the return 0L; statement of case WM_PAINT: |
case WM_COMMAND:
switch( LOWORD( wParam ) )
{
case IDM_FILE_OPEN:
OpenFileName.Flags = OFN_HIDEREADONLY;
if( GetOpenFileName( &OpenFileName ) )
{
// open the vector file
nRet = L_VecLoadFile ( szFileName, &Vector, NULL, NULL );
if( nRet != SUCCESS )
MessageBox( hWnd, TEXT("Cannot open file!"), TEXT("Error"), MB_ICONEXCLAMATION );
GetClientRect( hWnd, &Rect );
L_VecSetViewport ( &Vector, &Rect );
ResetView( hWnd, &Vector );
}
return 0L;
case IDM_FILE_SAVE:
OpenFileName.Flags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
if( GetSaveFileName( &OpenFileName ) )
{
// save the vector file
nRet = L_VecSaveFile ( szFileName, &Vector, FILE_DXF, NULL );
if( nRet != SUCCESS )
MessageBox( hWnd, TEXT("Cannot save file!"), TEXT("Error"), MB_ICONEXCLAMATION );
}
return 0L;
case IDM_FILE_EXIT:
PostMessage( hWnd, WM_CLOSE, 0L, 0L );
return 0L;
}
break;
11. |
Select Insert->Files into Project from the menu. In the dialog box that appears, browse to c:\lead\lib\ltfil_n.lib, select it and click Add. |
12. |
Compile and run the project. You will be able to view, load and save vector files as you browse your local hard disk. |