c语言中invalid,invalidate函数的使用

  c语言中invalid,invalidate函数的使用

  void invalidate(BOOL bErase=TRUE);

  该函数使整个窗口客户区无效。窗口的无效客户区意味着需要重新绘制。例如,如果被其他窗口覆盖的窗口成为前台窗口,则原来被覆盖的部分无效,需要重新绘制。Windows会将WM_PAINT消息放入应用程序的消息队列中。MFC窗口类提供了WM_PAINT的消息处理函数OnPaint,OnPaint负责窗口的重绘。视图类有一些例外。OnDraw函数在view类的OnPaint函数中调用,实际的重画工作由OnDraw完成。当参数bErase为真时,重绘区域的背景将被擦除;否则背景不变。

  UpdateWindow()和UpdateWindow()的区别在于,updatewindow()的作用是让窗口立即重绘。调用Invalidate等函数后,不会立即重绘窗口。这是因为WM_PAINT消息的优先级较低,它需要等待消息队列中的其他消息发送后才能被处理。调用UpdateWindow函数可以导致WM_PAINT被直接发送到目标窗口,这将导致窗口被立即重画。

  不擦除背景直接作废(假)绘制。

  Invalidate(true)擦除背景。

  无效()函数的用法

  不擦除背景直接作废(假)绘制。

  Invalidate(true)擦除背景。

  InvalidateRect只是增加了重绘区域,在下一个WM_PAINT时间生效。

  InvalidateRect函数中的参数TRUE表示系统将在您绘制之前用背景色覆盖所选区域一次。默认背景色是白色,可以通过设置BRUSH来改变背景色。

  invalid():(顺便说一下,MFC)之后

  OnPaint()- OnPrepareDC()- OnDraw()

  所以只要刷新OnPaint()和OnDraw()函数中的画图语句就可以了。其他地方没有影响。

  Invalidate标记了一个需要重绘的无效区域,这并不意味着函数被调用后会立即重绘。类似于PostMessage(WM_PAINT),需要对其进行处理才能真正重绘WM_PAINT消息。你认为Invalidate之后还有其他语句正在执行,程序没有机会处理WM_PAINT消息,但是消息处理只能在函数执行之后进行。

  Invalidate只是在队列中放一个WM_PAINT消息,其他不做,所以只有当前函数返回,进入消息循环,取出WM_PAINT,才会执行PAINT,所以无论Invalidate放在哪里,都是最后一个。

  invalidate estrupter(hWnd,Rect,TRUE);向hWnd form发送WM_PAINT消息,强制重画客户区,

  Rect是你指定刷新的区域,这个区域之外的客户区域不会被重画,以免客户区域的一个局部变化,导致整个客户区域被重画而闪烁。如果最后一个参数为真,那么WM_ERASEBKGND消息将被发送到表单来重绘背景,当然是在重绘客户区域之前。

  UpdateWindow()只向窗体发送WM_PAINT消息。在发送之前,它判断GetUpdateRect(hWnd,NULL,TRUE)是否有要绘制的客户区。如果不是,它不发送WM_PAINT。

  如果想立即刷新无效区域,可以在调用InvalidateRect后调用UpdateWindow。如果客户区的任何部分无效,UpdateWindow将导致Windows调用带有WM_PAINT消息的窗口过程(如果整个客户区有效,则不会调用窗口过程)。这个WM_PAINT消息不进入消息队列,窗口过程由WINDOWS直接调用。进程完成刷新后,窗口将立即退出,WINDOWS将在程序中UpdateWindow调用后将控制权返回给语句。

  UpdateData()顺便说一下,这个函数不是用来刷新界面的。

  update data();当参数为true时,接口上控件绑定的变量的数据将被导入到控件中;当参数为false时,导入方向将相反。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: