码迷,mamicode.com
首页 > Windows程序 > 详细

LockWindowUpdate的函数的用法

时间:2017-12-14 19:19:08      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:.com   window   div   ica   ssm   接收   archive   cat   hand   

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://www.cnblogs.com/zhangzhifeng/archive/2011/09/19/2181545.html

LockWindowUpdate的函数的用法

标签:.com   window   div   ica   ssm   接收   archive   cat   hand   

原文地址:http://www.cnblogs.com/findumars/p/8039053.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!