Implementing Automation - Implementing the Automated Edit Menu

Start with the project you created in Implementing 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 the following 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.

Help Version 20.0.2020.4.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Container and Automation C API Help