Low-Level DigitalPaint: Painting with a Brush

Start with the project you created in Low-Level DigitalPaint: Setting General DigitalPaint Information.

 

1.

Add the following popup menu to the main menu you created in Low-Level DigitalPaint: Initializing and Freeing a Paint Handle.

 

&Painting Test
&Brush with ID = IDM_PAINTTEST_BRUSH

 

2.

Add the following function before the OnOpen function definition:

 

static L_VOID OnBrush ( HWND hWnd, pPAINTHANDLE pPaint ) 
{
   HDC hDC ;
   PAINTBRUSH brush ;  

   // Reset all of the brush fields
   memset ( &brush, 0, sizeof ( brush ) ) ;

   // Get device context to draw on 
   hDC = GetDC ( hWnd ) ;

   // Set the required paintbrush properties 
   brush.nSize  = sizeof ( PAINTBRUSH ) ;
   brush.dwMask = PBF_DIAMETER |
                               PBF_TOUCH |
                               PBF_SPACING ;
   brush.nDiameter = 20 ; 
   brush.Touch.crColor = RGB ( 255, 0, 0 ) ;
   brush.nSpacing = 25 ; 

   // Set the new paintbruch properties 
   L_PntSetProperty ( pPaint, PAINT_GROUP_BRUSH, &brush ) ;

   // Use the current paintbruch properties to draw a paintbrush stroke to DC (hDC) 
   L_PntBrushMoveTo ( pPaint, hDC, 10, 10 ) ;
   L_PntBrushLineTo ( pPaint, hDC, 500, 500 ) ;

   // Release the device context 
   ReleaseDC ( hWnd, hDC ) ;
}

 

3.

Add the following code after the statement "return 0L;" of the "case IDM_FILE_EXIT:" statement:

 

case IDM_PAINTTEST_BRUSH:
OnBrush ( 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 "Brush" item. This will draw a brush stroke on the given DC and on the opened bitmap.