OnPaint

WM_PAINT消息的消息處理函數

OnPaint是一種函數,在C++ 中,是WM_PAINT消息的消息處理函數,OnPaint()是CWnd的類成員,負責響應WM_PAINT消息。

內容介紹


CWnd::OnPaint
afx_msg void OnPaint( );
說明:
當Windows或應用程序請求重畫應用程序窗口的一部分時,框架調用這個成員函數。WM_PAINT在調用UpdateWindow或RedrawWindow成員函數時發出。當設置了RDW_INTERNALPAINT標誌並調用RedrawWindow成員函數時,窗口可能會接收到內部重畫消息。在這種情況下,窗口可能沒有更新區域。應用程序必須調用GetUpdateRect成員函數以確定窗口是否具有更新區域。如果GetUpdateRect返回0,則應用程序不應調用BeginPaint和EndPaint成員函數。
應用程序負責檢查是否需要內部重畫或更新,這可通過查看每條WM_PAINT消息的內部數據結構來完成,因為一條WM_PAINT可能是由於一個無效區域或由於使用RDW_INTERNALPAINT標誌調用了RedrawWindow成員函數而引起的。
Windows只發送一次內部WM_PAINT消息。在通過UpdateWindow成員函數向窗口發送了內部WM_PAINT消息以後,將不會再向窗口發送其它WM_PAINT消息,直到再次使用RDW_INTERNALPAINT標誌調用了RedrawWindow成員函數。