WM_PAINT  F35NC7 

An application sends the WM_PAINT message when Windows or another application makes a request to paint a portion of an application s window. The message is sent when the UpdateWindow19G_54E or RedrawWindowJIZTXU function is called, or by the DispatchMessage20GX08E function when the application obtains a WM_PAINT message by using the GetMessageIXKDTP or PeekMessage0X9XXX function.

WM_PAINT

hdc = (HDC) wParam; // the device context to draw in

 

Parameters

hdc

Identifies the device context to draw in. If this parameter is NULL, use the default device context. This parameter is used by some common controls to enable drawing in a device context other than the default device context. Other windows can safely ignore this parameter.

 

Return Values

An application should return zero if it processes this message.

Remarks

The DefWindowProc32D1NBH function validates the update region. The function may also send the WM_NCPAINTL6KA1 message to the window procedure if the window frame must be painted and send the WM_ERASEBKGNDFEY63I message if the window background must be erased.

The system sends this message when there are no other messages in the application s message queue. DispatchMessage determines where to send the message; GetMessage determines which message to dispatch. GetMessage returns the WM_PAINT message when there are no other messages in the application s message queue, and DispatchMessage sends the message to the appropriate window procedure.

A window may receive internal paint messages as a result of calling RedrawWindow with the RDW_INTERNALPAINT flag set. In this case, the window may not have an update region. An application should call the GetUpdateRectHZC2VQ function to determine whether the window has an update region. If GetUpdateRect returns zero, the application should not call the BeginPaintF7YTUY and EndPaint8D6UZ5 functions.

An application must check for any necessary internal painting by looking at its internal data structures for each WM_PAINT message, because a WM_PAINT message may have been caused by both a non-NULL update region and a call to RedrawWindow with the RDW_INTERNALPAINT flag set.

Windows sends an internal WM_PAINT message only once. After an internal WM_PAINT message is returned from GetMessage or PeekMessage or is sent to a window by UpdateWindow, Windows does not post or send further WM_PAINT messages until the window is invalidated or until RedrawWindow is called again with the RDW_INTERNALPAINT flag set.

For some common controls, the default WM_PAINT message processing checks the wParam parameter. If wParam is non-NULL, the control assumes that the value is an HDC and paints using that device context.

See Also

BeginPaint, DefWindowProc, DispatchMessage, EndPaint, GetMessage, GetUpdateRect, PeekMessage, RedrawWindow, UpdateWindow, WM_ERASEBKGND, WM_NCPAINT