注册 登录
编程论坛 VB6论坛

窗体的autoredraw属性问题

olkldksl 发布于 2017-03-15 15:40, 1661 次点击
课本上说设置autoredraw为false时,以前显示的内容成为背景的一部分,此时用cls方法清除绘图区时不会删除背景图形,但是我写的测试代码

Private Sub Form_Activate()
   
    For i = 1 To 5
        
        Print "xiaoxiaoxiao"
        
    Next
   
    Form1.AutoRedraw = False
   
    Form1.Cls
   
End Sub

运行后窗体里是空的,cls把之前打印的字符串删除了,请问这是怎么回事呀?

2 回复
#2
ZHRXJR2017-03-16 13:50
我记得好像是界面程序背景在autoredraw=false时,背景不会清除
但Form1.Cls是清除窗体内容的,即就是autoredraw=false,背景可以不清除,但输入的文字肯定是清除的,除非你将输入的文字保存图片再设置为背景才可以。
#3
风吹过b2017-03-16 23:07
窗体的背景分二层,一层 picture 层,一层image 层。
cls 是清 image 层的内容,我们贴图什么的,画图经print输出的文字,都在这层。
cls 也是绘图命令。
autoredraw 属性 就是告诉 window ,image这层需不需要缓存,如果缓存了,那么当窗体需要重绘时,会将缓存的图像还原上去;如果没有缓存,重绘时,就留picture层的内容而以 。当你不使用picture层时,picture层就是纯色的窗体背景色。
1