解锁工作页面的帧缓冲区
语法
用法
ScreenUnlock [ start_line ] [, end_line ]
参数
startline
可选参数指定要更新的第一个屏幕行。如果省略,则假定顶屏线。
endline
可选参数指定要更新的最后一个屏幕行。如果省略,则假定底线。
说明
ScreenUnlock解锁当前工作页面,假设以前通过调用
ScreenLock锁定,并让系统重新定期更新屏幕。当使用
start_line和
end_line调用时,仅假定这些行之间的屏幕区域已更改,并将更新。
存在一个记忆屏幕锁定状态的内部计数器,因此
ScreenUnlock仅对被锁定的屏幕产生影响。尚未锁定
ScreenLock的屏幕无法解锁,但是
ScreenUnlock仍然会强制更新给定区域或全屏。
调用
ScreenUnlock必须与匹配的调用配对
ScreenLock.只有第一次调用
ScreenLock实际上执行了锁定操作。后续调用
ScreenLock只会增加锁定计数器。相反,
ScreenUnlock只会将锁定计数器递减,直到达到零为止,才能执行实际的解锁操作。在更改屏幕模式之前,使用
Screen或
ScreenRes将释放所有锁并将锁定计数器设置为零。
所有图形语句在函数调用之前自动锁定屏幕,然后解锁屏幕,因此您不需要使用
ScreenLock和
ScreenUnlock显式地执行此操作。当您希望使用
ScreenPtr直接访问屏幕(帧缓冲区)时,或者当您希望将多个图形语句组合在一起时,您只需要锁定屏幕,以便它们的效果同时显示在屏幕上,从而避免屏幕更新期间的屏幕闪烁。
警告(Win32,Linux):通过停止处理操作系统事件的线程来锁定屏幕。这意味着屏幕只能在需要重新绘制所需的时间内被锁定,屏幕锁定时不会接收用户的输入。当感应锁定时间变得太长时,优选使用双重缓冲的方法(使用
ScreenCopy)。
例子
方言差异
- 在-lang qb 方言中不可用,除非使用别名__Screenunlock引用。
与QB差别
参考