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 15\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. |