zoukankan      html  css  js  c++  java
  • 更新窗口

    InvalidateRect

    rect是你指定要刷新的区域,此区域外的客户区域不被重绘,这样防止客户区域的一个局部的改动,而导致整个客户区域重绘而导致闪烁

    如果最后的参数为TRUE,则还向窗体发送WM_ERASEBKGND消息,使背景重绘,当然在客户区域重绘之前。

    UpdateWindow

    在发送之前通过GetUpdateRect判断有无可绘制的客户区域

    如果没有,则不发送WM_PAINT

    如果希望立即刷新无效区域,可以在调用InvalidateRect之后调用UpdateWindow

    这一WM_PAINT消息不进入消息队列,直接由WINDOWS调用窗口过程。

    窗口过程完成刷新以后立刻退出,WINDOWS将控制返回给程序中UpdateWindow调用之后的语句。

    WM_ERASEBKGND

    首先需要明确,WM_ERASEBKGND消息总是比WM_PAINT消息提前发送

    WM_ERASEBKGND消息的目的是用窗口自定义的画刷将无效区域刷新

    如果InvalidateRect函数指定不更新背景,则不发送WM_ERASEBKGND消息。

    程序员可以处理WM_ERASEBKGND消息,直接定义自己的处理过程(比如直接返回TRUE,这样,背景就不刷新了),刷新函数是默认的Def函数。

    WM_ERASEBKGND的返回值将被WM_PAINT消息的PS结构中的一个字段所占用,当处理WM_PAINT消息,可以根据此值来判断背景是否被刷新。

  • 相关阅读:
    grunt in webstorm
    10+ Best Responsive HTML5 AngularJS Templates
    响应式布局
    responsive grid
    responsive layout
    js event bubble and capturing
    Understanding Service Types
    To add private variable to this Javascript literal object
    Centering HTML elements larger than their parents
    java5 新特性
  • 原文地址:https://www.cnblogs.com/TaoyzDream/p/3698670.html
Copyright © 2011-2022 走看看