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:\LEADTOOLS 19\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. |