Application.ProcessMessages;
LockWindowUpdate(Self.Handle);  //锁住当前窗口

LockWindowUpdate(0)//解除锁定窗口

LockWindowUpdate不但闪烁,而且有可能引起桌面闪烁。因为LockWindowUpdate并不忽略消息,只是暂时不响应,所以有可能积聚多个重画消息,并在使用LockWindowUpdate(0)之后依次响应。
而使用SendMessage(ClientHandle,WM_SETREDRAW,0,0)之后,控件根本不接收重画消息,除非使用SendMessage(ClientHandle,WM_SETREDRAW,1,0)之后;
LockWindowUpdate的意思是暂时禁止某控件或窗口所在的区域更新(这个区域可能有多个窗口),LockWindowUpdate(0)的意思是有更新消息就更新屏幕上所有该更新的窗口吧。所以LockWindowUpdate(0)之后,若此前有重画消息积聚,会立刻重画。所以使用LockWindowUpdate会在不同的时候有不同的表现,比如屏幕上窗口多少、堆放情况等等,所以有时不闪有时却闪个不停。
SendMessage(ClientHandle,WM_SETREDRAW,0,0)的意思是不接收任何重画消息;
SendMessage(ClientHandle,WM_SETREDRAW,1,0)的意思是可以接收并响应重画消息了,但并不立即重画,所以必须附加 ReDrawWindow(ClientHandle,nil,0,RDW_INVALIDATE or RDW_ALLCHILDREN);

http://blog.csdn.net/zisongjia/article/details/58073126

LockWindowUpdate的函数的用法(不忽略消息,只是暂时不响应,但WM_SETREDRAW根本不接受重绘消息)的更多相关文章

  1. LockWindowUpdate的函数的用法

    Application.ProcessMessages;LockWindowUpdate(Self.Handle); //锁住当前窗口 LockWindowUpdate(0)//解除锁定窗口 Lock ...

  2. 【转】VC的MFC中重绘函数的使用总结(整理)

    原文网址:http://www.cnblogs.com/x8023z/archive/2008/12/09/mfc33.html 在刷新窗口时经常要调用重绘函数MFC提供了三个函数用于窗口重绘Inva ...

  3. MFC重绘函数:InvalidateRect(), Invalidate()和UpdateWindow()

    1. 重绘消息 当需要更新或者重绘窗口时,一般系统会发出两个消息WM_PAINT(通知客户区有变化)和WM_NCPAINT(通知非客户区有变化) WM_NCPAINT系统会自己搞定 WM_PAINT消 ...

  4. java String.split()函数的用法分析

    java String.split()函数的用法分析 栏目:Java基础 作者:admin 日期:2015-04-06 评论:0 点击: 3,195 次 在java.lang包中有String.spl ...

  5. javascript confirm()函数的用法

    javascript confirm()函数的用法 confirm():确认消息对话框.用于允许用户做选择的动作.弹出的对话框中包含一确定按钮和一取消按钮. confirm(str) 参数说明: st ...

  6. C语言中关于scanf函数的用法

    scanf()函数的控制串 函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化 ...

  7. Oracle trunc()函数的用法--来着心静禅定ing

    1.TRUNC(for dates) TRUNC函数为指定元素而截去的日期值. 其具体的语法格式如下: TRUNC(date[,fmt]) 其中: date 一个日期值 fmt 日期格式,该日期将由指 ...

  8. web报表工具FineReport常用函数的用法总结(日期和时间函数)

    web报表工具FineReport常用函数的用法总结(日期和时间函数) 说明:凡函数中以日期作为参数因子的,其中日期的形式都必须是yy/mm/dd.而且必须用英文环境下双引号(" " ...

  9. 根据MAC地址获取网络地址及ZDP_NwkAddrReq函数的用法

    1..对于设备需要获取本设备的网络地址和MAC地址: NLME_GetShortAddr()——返回本设备的16位网络地址 NLME_GetExtAddr()——  返回本设备的64位扩展地址 2.使 ...

随机推荐

  1. zookeeper 半数可用/选举机制

    1.半数可用机制,半数可用指的是zk集群中一半以上的机器正常时集群才能正常工作 已经启动了hadoop002(follower),hadoop003(leader) 下面停止hadoop002 在ha ...

  2. hexo的url路径修改以及发布与修改时间

    hexo默认url是年/月/日,这样其实不利于SEO.hexo生成新文章命令,hexo new [layout] <title>,这个title最好是英文的,因为我们要把这个title放在 ...

  3. 利用WPF建立自己的3d gis软件(非axhost方式)(一)

    原文:利用WPF建立自己的3d gis软件(非axhost方式)(一) 先下载SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew 密码:1te1 地 ...

  4. JavaCPP 技术使用经验总结

    本文是对 JNI 技术的一个补充方法,提出了替换 JNI.JNA 的一种开源技术.首先对 JavaCPP 技术进行简单介绍及对应于其他现有方案的介绍.对比.接下来,通过一个简单的示例让大家了解 Jav ...

  5. 一次解决React+TypeScript+Webpack 别名(alias)找不到问题的过程「转载」

    链接 引言 在组件开发中,业务功能和基础组件一般分开放,比如在我们的项目中,components为基础组件, container为业务组件,但是在container中调用components中的组件时 ...

  6. SWIFT学习笔记02

    1.//下面的浮点文字等于十进制12.1875: let decimalDouble = 12.1875 let exponentDouble = 1.21875e1 let hexadecimalD ...

  7. Leetcode 104 Maximum Depth of Binary Tree 二叉树

    计算二叉树的最大深度 我的方法是找出两个子树的长度中最长的那个,然后加1 class Solution { public: int maxDepth(TreeNode* root) { ; ,maxD ...

  8. 简明Python3教程 17.更多

    简介 迄今为止我们已经学习了python中的大多数常用知识.本章中我们会接触到更多的知识,使得我们更全面的掌握python. 传递元组 你是否希望过从函数返回两个不同的值?做到这点使用元组即可. &g ...

  9. JDBC学习笔记——事务、存储过程以及批量处理

    1.事务                                                                                   1.1.事务的基本概念和使 ...

  10. 构建自己的PHP框架(composer)

    完整项目地址:https://github.com/Evai/Aier Composer 利用 PSR-0 和 PSR-4 以及 PHP5.3 的命名空间构造了一个繁荣的 PHP 生态系统.Compo ...