《Windows程序设计》笔记 —— Chapter Four

 1.WinMain进入循环之前,通常会有UpdateWindow来向窗口过程投放WM_PAINT消息。
         2.触发WM_PAINT消息的事件:之前隐藏的窗口部分重新可见;改变窗口的大小;ScrollWindow或ScrollDC滚动客户区;InvalidRect或者InvalidRgn显示产生WM_PAINT消息;而Validate则会将WM_PAINT取消掉。
         3.程序应该组织成可以保留绘制客户区需要的所有信息。
         4.客户区无效区域、有效区域的理解,处理WM_PAINT时,窗口过程可以通过GetUpdateRect获取无效区域的坐标。
         5.设备描述表总是与显示器上的特定窗口相关。
         6.WM_ERASEBKGND处理无效区域的擦除,并利用WNDCLASS.hbrbackground中的刷子属性填充无效区域。
         7.PAINTSTRUCT结构。
         8.InvalidateRect(hwnd,NULL,TRUE)使整个客户区无效,并擦除背景,如果最后一个参数位FALSE则不擦除背景。
         9.获取设备描述表的方法:
                                       1)  hdc = BeginPaint(hwnd,&ps);
                                            EndPaint(hwnd,&ps);    此方法仅在无效区域上画图
                                       2)  hdc = GetDC(hwnd);
                                             ReleaseDC(hwnd,hdc);        此方法可在客户端任何区域上画图,且不会使无效变有效。
                                             GetWindowDC,返回整个窗口的设备描述表,可修改窗口标题等。

原文地址:https://www.cnblogs.com/xyzlmn/p/3168273.html