Implementing Automation - Implementing the Automated Edit Menu
Start with the project you created in implementing the vector automation
Take the following steps to implement an edit menu in the application:
1. |
Select the File->New menu option. 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
&Undo with ID = IDM_EDIT_UNDO
&Redo with ID = IDM_EDIT_REDO
Cu&t with ID = IDM_EDIT_CUT
&Copy with ID = IDM_EDIT_COPY
&Paste with ID = IDM_EDIT_PASTE
&Delete with ID = IDM_EDIT_DELETE
Select &All with ID = IDM_EDIT_SELECTALL
&Unselect All with ID = IDM_EDIT_UNSELECTALL
P&rint with ID = IDM_EDIT_PRINT
&Reset with ID = IDM_EDIT_RESET
4. |
Select File->Save from the menu. Enter vecaut.rc in the Save As box and click Save. |
5. |
Select Insert->Files into Project, browse to the vecaut.rc file just created and click Add. |
6. |
Add the following line right under #include "c:\lead\include\ltaut.h". |
#include "resource.h"
7. |
Change the line |
WndClass.lpszMenuName = NULL;
In the WinMain function to
WndClass.lpszMenuName = MAKEINTRESOURCE( IDR_MENU1 );
8. |
Add the following lines of code right after the return 0L; statement of case WM_CREATE: |
case WM_COMMAND:
switch( LOWORD( wParam ) )
{
case IDM_EDIT_UNDO:
L_AutUndo ( pAutomation, 0L );
InvalidateRect( hWnd, NULL, FALSE );
return 0L;
case IDM_EDIT_REDO:
L_AutUndo ( pAutomation, 0L );
InvalidateRect( hWnd, NULL, FALSE );
return 0L;
case IDM_EDIT_CUT:
L_AutCut ( pAutomation, 0L );
InvalidateRect( hWnd, NULL, FALSE );
return 0L;
case IDM_EDIT_COPY:
L_AutCopy ( pAutomation, 0L );
InvalidateRect( hWnd, NULL, FALSE );
return 0L;
case IDM_EDIT_PASTE:
L_AutPaste ( pAutomation, 0L );
InvalidateRect( hWnd, NULL, FALSE );
return 0L;
case IDM_EDIT_DELETE:
L_AutDelete ( pAutomation, 0L );
InvalidateRect( hWnd, NULL, FALSE );
return 0L;
case IDM_EDIT_SELECTALL:
L_AutSelect ( pAutomation, AUTOMATION_SELECT_ALL, 0L );
InvalidateRect( hWnd, NULL, FALSE );
return 0L;
case IDM_EDIT_UNSELECTALL:
L_AutSelect ( pAutomation, AUTOMATION_SELECT_NONE, 0L );
InvalidateRect( hWnd, NULL, FALSE );
return 0L;
case IDM_EDIT_PRINT:
L_AutPrint ( pAutomation, 0L );
return 0L;
case IDM_EDIT_RESET:
ResetView( hWnd, &Vector, pAutomation );
return 0L;
default:
break;
}
break;
9. |
Compile and run the demo. You should be able to perform common operations found in most Windows programs on your vector image. |