Setting the Digital Painting Properties

Start with the project you created in Using the Automation Editing Capabilities.

1.

Add the following popup menu structure to the main menu you created in Implementing the Paint Automation Initializing, Creating and Freeing

&Properties
&Shape                      with ID = IDM_PROPERTIES_SHAPE

2.

Add the following include statement at the end in Stdafx.h:

#include "c:\Program Files\LEAD Technologies\LEADTOOLS 16\Include\ltpdg.h"

3.

Add the following function definition before the OnOpen function definition:

 

static L_VOID OnShapeProperties(HWND hWnd, pAUTOMATIONHANDLE pAutomation ) 
{
   PAINTSHAPE shape ; 
   PAINTDLGSHAPEINFO ShapeDlgInfo ; 
   L_INT nRet ; 


   L_AutGetPaintProperty ( pAutomation, PAINT_GROUP_SHAPE, &shape ) ; 

   ShapeDlgInfo.dwFlags = PAINT_DLG_SHAPE_SHOWALL ; 
   ShapeDlgInfo.pszTitle = TEXT("Shape Properties") ; 
   ShapeDlgInfo.nBackgroundStyle = shape.nBackgroundStyle ; 
   ShapeDlgInfo.crBackgroundColor = shape.crBackgroundColor ; 
   ShapeDlgInfo.ppszBackgroundTileBitmap = NULL ; 
   ShapeDlgInfo.uBackgroundTileBitmapCount = 0 ; 
   ShapeDlgInfo.nActiveBackgroundTileBitmapItem = -1 ; 
   ShapeDlgInfo.nBorderStyle = shape.nBorderStyle ; 
   ShapeDlgInfo.nBorderBrushStyle = shape.nBorderBrushStyle ; 
   ShapeDlgInfo.crBorderColor = shape.crBorderColor ; 
   ShapeDlgInfo.ppszBorderTileBitmap = NULL ; 
   ShapeDlgInfo.uBorderTileBitmapCount = 0 ; 
   ShapeDlgInfo.nActiveBorderTileBitmapItem  = -1 ; 
   ShapeDlgInfo.nBorderWidth = shape.nBorderWidth ; 
   ShapeDlgInfo.nBorderEndCap = shape.nBorderEndCap ; 
   ShapeDlgInfo.nGradientStyle = shape.nGradientStyle ; 
   ShapeDlgInfo.crGradientStartColor = shape.crGradientStartColor ; 
   ShapeDlgInfo.crGradientEndColor = shape.crGradientEndColor ; 
   ShapeDlgInfo.uGradientSteps = shape.uGradientSteps ; 
   ShapeDlgInfo.nRoundRectEllipseWidth = shape.nRoundRectEllipseWidth ; 
   ShapeDlgInfo.nRoundRectEllipseHeight = shape.nRoundRectEllipseHeight ; 
   ShapeDlgInfo.nOpacity = shape.nOpacity ; 
   ShapeDlgInfo.ppszPaperTexture = NULL ; 
   ShapeDlgInfo.uPaperTextureCount = 0 ; 
   ShapeDlgInfo.nActivePaperTextureItem = -1 ; 

   nRet = L_PntDlgShape ( hWnd, &ShapeDlgInfo ) ; 

   if ( SUCCESS == nRet ) 
   {
      shape.nSize = sizeof ( PAINTSHAPE ) ; 
      shape.dwMask = PSF_ALL ; 
      shape.nBackgroundStyle = ShapeDlgInfo.nBackgroundStyle ;   
      shape.crBackgroundColor = ShapeDlgInfo.crBackgroundColor ;     
      shape.pBackgroundTileBitmap = NULL ; 
      shape.nBorderStyle = ShapeDlgInfo.nBorderStyle ; 
      shape.nBorderBrushStyle = ShapeDlgInfo.nBorderBrushStyle ; 
      shape.crBorderColor = ShapeDlgInfo.crBorderColor ;   
      shape.hBorderTileBitmap = NULL ; 
      shape.nBorderWidth = ShapeDlgInfo.nBorderWidth ; 
      shape.nBorderEndCap = ShapeDlgInfo.nBorderEndCap ; 
      shape.nGradientStyle = ShapeDlgInfo.nGradientStyle ; 
      shape.crGradientStartColor = ShapeDlgInfo.crGradientStartColor ;        
      shape.crGradientEndColor = ShapeDlgInfo.crGradientEndColor ;       
      shape.uGradientSteps = ShapeDlgInfo.uGradientSteps ;  
      shape.nRoundRectEllipseWidth = ShapeDlgInfo.nRoundRectEllipseWidth ; 
      shape.nRoundRectEllipseHeight = ShapeDlgInfo.nRoundRectEllipseHeight ; 
      shape.nOpacity = ShapeDlgInfo.nOpacity ; 
      shape.pTexture = NULL ; 

      L_AutSetPaintProperty ( pAutomation, PAINT_GROUP_SHAPE, &shape ) ; 
   }
}

4.

Add the following line to the WndProc function after the statement "return 0L ;" of the case IDM_EDIT_DELETE in the WM_COMMAND message:

case IDM_PROPERTIES_SHAPE: 
               OnShapeProperties ( hWnd, pAutomation ) ; 

               return 0L ; 

5.

Compile and run the project by selecting Build->Execute tutorial.exe from the menu.