in WinUser.h 定义了PAINTSTRUCT结构
typedef STRUCT TAG_PAINTSTRUCT{
HDC hdc;
BOOL fErase;
RECT rcPaint;
BOOL fRestore;
BOOL fIncUpdate;
BYTE rgbReserved[32];
}PAINTSTRUCT;
第一种方法:BeginPaint(HWND hWnd, PAINTSTRUCT* ps),EndPaint(HWND hWnd, PAINTSTRUCT* ps)
DefWindowProc()
{
BeginPaint(hwnd, &ps); //ps中的rcPaint由windows系统计算后得到包含InvalidRect的最小Rectangle
//do nothing
EndPaint(hwnd, &ps);
}
第二种方法:GetDC(HWND hwnd), ReleaseDC(HWND hwnd, HDC hdc)
GetDC得到的是对应HWND窗口的ClientArea的Clipping Rectangle,该Rectangle包含整个客户区
//说明 GetWIndowDC(HWND hwnd)可以得到整个窗口的Rectangle包含客户区,标题栏等等。
//而且可能自己处理WM_NCPAINT消息,NC=NOT CLIENT AREA