Low-Level DigitalPaint: Painting a Shape
Start with the project you created in Low-Level DigitalPaint: Painting with a Brush.
1. |
Add the following item to the popup menu "Painting Test " that you added to the main menu: |
&Painting Test
&Shape with ID = IDM_PAINTTEST_SHAPE
2. |
Add the following function before the OnOpen function definition: |
static L_VOID OnShape ( HWND hWnd, pPAINTHANDLE pPaint )
{
HDC hDC ;
PAINTSHAPE shape;
// Set the required shape properties
shape.nSize = sizeof ( PAINTSHAPE ) ;
shape.dwMask = PSF_BORDERWIDTH |
PSF_BORDERSTYLE |
PSF_BORDERCOLOR |
PSF_BORDERENDCAP ;
shape.nBorderWidth = 10 ;
shape.nBorderStyle = PAINT_SHAPE_BORDER_STYLE_DASHDOT ;
shape.crBorderColor = RGB ( 255, 0, 0 ) ;
shape.nBorderEndCap = PAINT_SHAPE_BORDER_ENDCAP_ROUND ;
// Set the new shape properties
L_PntSetProperty ( pPaint, PAINT_GROUP_SHAPE, &shape ) ;
// Get device context to draw on
hDC = GetDC ( hWnd ) ;
// Use the current shape properties to draw a line to the currently selected bitmap
L_PntDrawShapeLine ( pPaint, hDC, 10, 10, 400, 400 ) ;
// Release the device context
ReleaseDC ( hWnd, hDC ) ;
}
3. |
Add the following line after the "return 0L ;" of the "case IDM_PAINTTEST_BRUSH:" statement: |
case IDM_PAINTTEST_SHAPE:
OnShape ( hWnd, pPaint ) ;
return 0L ;
4. |
Compile and run the project by selecting Build->Execute tutorial.exe from the menu. |
5. |
Go to the "File" menu and use the "Open…" item to open an image. |
6. |
Go to the "Painting Test" and select the "Shape" item. This will draw a line using the current shape properties. |