E) ; return 0 ;
case WM_SIZE: cxClient = LOWORD (lParam) ; cyClient = HIWORD (lParam) ; return 0 ;
case WM_TIMER: InvalidateRect (hwnd, NULL, TRUE) ; return 0 ;
case WM_PAINT: hdc = BeginPaint (hwnd, &ps) ;
SetMapMode (hdc, MM_ISOTROPIC) ; SetWindowExtEx (hdc, 276, 72, NULL) ; SetViewportExtEx (hdc, cxClient, cyClient, NULL) ;
SetWindowOrgEx (hdc, 138, 36, NULL) ; SetViewportOrgEx (hdc, cxClient / 2, cyClient / 2, NULL) ; SelectObject (hdc, GetStockObject (NULL_PEN)) ; SelectObject (hdc, hBrushRed) ;
DisplayTime (hdc, f24Hour, fSuppress) ;
EndPaint (hwnd, &ps) ; return 0 ;
case WM_DESTROY: KillTimer (hwnd, ID_TIMER) ; DeleteObject (hBrushRed) ; PostQuitMessage (0) ; return 0 ; } return DefWindowProc (hwnd, message, wParam, lParam) ; }
DIGCLOCK视窗如图8-1所示。

虽然,在图8-1中您看不到时钟的数字是红色的。DIGCLOCK的视窗讯息处理程式在处理WM_CREATE讯息处理期间建立了一个红色的画刷并在处理WM_DESTROY讯息处理期间清除它。WM_CREATE讯息也为DIGCLOCK设定了一个一秒的计时器,该计时器在处理WM_DESTROY讯息处理期间被终止(待会将讨论对GetLocaleI |