2-1-2 图形刷新

 

  主要内容:介绍Windows的图形刷新

 

  图形刷新是绘图过程中必须考虑的一个重要问题

 

  1.提出刷新请求(事件驱动)

    <1>窗口大小的调整

    <2>窗口的移动

    <3>被覆盖后的恢复

  

  2.系统对刷新请求进行响应

    当用户区的内容需要刷新时,系统向应用程序消息队列发送WM_PAINT消息(消息响应),

    系统在应用程序的消息队列中加入该消息,以通知窗口函数执行刷新处理。

 

  3.刷新的三种方式

    <1>窗口移动后的刷新

      用户区移动或显示

      用户区窗口大小改变

      程序通过滚动条滚动窗口

    <2>被覆盖区域的刷新

      窗口被另一个窗口覆盖的恢复,如下拉式菜单关闭等等

    <3>对象创越后的刷新:通常由系统自动完成

      光标穿过用户区

      图标拖过用户区

 

  4.窗口被另外一个窗口覆盖的区域称为无效区域

    Windows系统为每个窗口建立了一个PAINTSTRUCT结构,

    该结构中包含了包围无效区域的一个最小举行的结构RECT,

    应用程序可以根据这个无效区域执行刷新操作

---------------------------------------------------------------------------------------

    typedef struct tagPAINTSTRUCT{

      HDC hdc;         //设备环境句柄

      BOOL fErase;       //一般取真值,表示擦除无效矩形的背景

      RECT rcPaint;      //无效区域标识

      BOOL fRestore;      //系统保留

      BOOL flncUpdate;     //系统保留

      BYTE rgbReserved[32];  //系统保留

    }PAINTSTRUCT;

---------------------------------------------------------------------------------------

  5.有效的刷新方法:

    常用的Windows应用程序刷新窗口的方法

    <1>记录事件,刷新时重新执行这个曾经发生的事件

    <2>保存副本,刷新时将副本拷贝到相应的窗口中

    <3>重新绘制,图形绘制处理程序放在消息WM_PAINT相应模块中,刷新时重绘图形

 

你可能感兴趣的:(2-1-2 图形刷新)