WM_PAINT

  LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDC hdc; switch (message) { case WM_PAINT: // PS的中的无效区域为剪裁区域, 所以不能再剪裁区域外绘图 hdc = BeginPaint (hWnd, &ps) ; // 进行绘画, 限定在无效剪裁区域内 EndPaint (hWnd, &ps) ; break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; } // 该函数为指定窗口进行绘图工作的准备,并用将和绘图 // 有关的信息填充到一个PAINTSTRUCT中 HDC BeginPaint( HWND hwnd, // handle to window LPPAINTSTRUCT lpPaint // pointer to structure for paint information ); typedef struct tagPAINTSTRUCT { HDC hdc; // 用于绘制的句柄 BOOL fErase; // 如果为非零值则擦除背景,否则不擦除背景 RECT rcPaint; // 剪裁区域 BOOL fRestore; // 后面3个字段系统预留, 一般不用到 BOOL fIncUpdate; BYTE rgbReserved[16]; } PAINTSTRUCT; // 该函数标记指定窗口的绘画过程结束;这个函数在每次调用BeginPaint函数之后被请求,但仅仅在绘画完成以后。 BOOL EndPaint( HWND hWnd, // handle to window CONST PAINTSTRUCT *lpPaint // pointer to structure for paint data );

你可能感兴趣的:(WM_PAINT)