Low-Level DigitalPaint: Processing the Window Activation Messages
This tutorial is giving an example on how to process the window activation messages:
Start with the project you created in Low-Level DigitalPaint: Drawing Text.
1. |
Add the following function before the OnOpen function definition: |
static L_VOID OnActivate
(
HWND hWnd,
pPAINTHANDLE pPaint,
pBITMAPHANDLE pBitmap,
HPALETTE hPalette,
L_INT nZoom,
L_INT nHScroll,
L_INT nVScroll
)
{
PAINTXFORM XForm ;
HDC hdcCompatibility ;
RECT rcDCRect ;
//set the painting toolkit data
hdcCompatibility = GetDC ( hWnd ) ;
L_PntSetMetrics ( pPaint, hdcCompatibility, pBitmap, hPalette ) ;
ReleaseDC ( hWnd, hdcCompatibility ) ;
XForm.nZoom = nZoom ;
XForm.nXOffset = nHScroll ;
XForm.nYOffset = nVScroll ;
L_PntSetTransformation ( pPaint, &XForm ) ;
GetClientRect ( hWnd, &rcDCRect ) ;
L_PntSetDCExtents ( pPaint, &rcDCRect ) ;
}
2. |
Add the following line after the "break;" statement of the "case WM_PAINT:" statement: |
case WM_ACTIVATE:
if ( WA_INACTIVE != LOWORD ( wParam ) )
{
HDC hDC = GetDC(hWnd);
HPALETTE hPalette = L_CreatePaintPalette(hDC, &hBitmap);
OnActivate ( hWnd, pPaint, &hBitmap, hPalette, nZoomFactor, nHScroll, nVScroll ) ;
if(hPalette)
DeleteObject(hPalette);
ReleaseDC(hWnd, hDC);
return 0 ;
}
3. |
Compile and run the project by selecting Build->Execute tutorial.exe from the menu. |