Implementing Scrollbars: Step 8

In the Window_OnPaint function, change the WM_PAINT message handling code.

VOID Window_OnPaint (HWND hWnd)
{
   HDC hdc;
   PAINTSTRUCT ps;
   HPALETTE hOldPal = NULL;
   hdc = BeginPaint (hWnd, &ps);/* Get DC */
   if (Data.BitmapHandle.Flags.Allocated) /* Do we have an image? */
   {
      if (Data.hPalette)        /* Is there a palette that needs to be
                                   selected? */
         hOldPal = SelectPalette (hdc, Data.hPalette, TRUE);  /* Select it. */
      /* Paint it */
      L_PaintDC (hdc,
                 &Data.BitmapHandle,
                 &rLeadSource,
                 NULL,
                 &rLeadDest,
                 &ps.rcPaint,
                 SRCCOPY);
      if (Data.hPalette)        /* Return old palette if there is one. */
         SelectPalette (hdc, hOldPal, TRUE);
      if (bFirst)
      {
         bFirst = FALSE;
         /* Reset the counter and start a timer to be used for display delay. */
         nCount = 0;
         nTimer = SetTimer (hWnd, 1, 1000, NULL);
         if (!nTimer)
         {
            MessageBox (hWnd, TEXT("No Timers Are Available!"),
                        TEXT("ERROR - Resources"), MB_OK);
            /* No timers are available, so quit the application. */
            FORWARD_WM_DESTROY (hWnd, PostMessage);
         }
      }
   }
   EndPaint (hWnd, &ps);        /* Return DC */
   return;
}