VB中窗体自动重绘什么意思?

有什么用?不明白什么意思... 有什么用?不明白什么意思 展开
 我来答
四舍五不入6
高粉答主

2019-10-03 · 醉心答题,欢迎关注
知道答主
回答量:147
采纳率:100%
帮助的人:2.1万
展开全部

自动重绘,如果是False的话,不会自动重绘,必须执行Refresh指令才会重绘。

所谓重绘,是指当窗体或控件最小化,或被遮挡以后,再显示的时候,会将被遮挡的部分重新画出来。

可以通过2个方法:

1、将绘制相关代码全部放在 Form_Paint 这个事件中,其实此时不需要什么API,只要Form1.Refresh 就可以再次执行这个事件里的代码了,如果需要不同的显示,那么可以设置多个公共变量,显示不同的时期的样式就设置某个变量为不同的值,然后 Paint 中根据该值执行不同代码。

2、将AutoReDraw设置为TRUE,此时无论代码写在哪,都能将改变立即反映,但是如果程序中设计到调用 Form1.hDC 的时候可能会出问题,这个原因开始我也纳闷过,后来才知道 AutoReDraw设置为TRUE 时获取的 HDC仅是个伪HDC,是获取不到实际的HDC的 。

扩展资料:

使用下列图形方法工作,如:Circle、Cls、Line、Point、Print 和 Pset,该属性极为重要。利用这些方法,在改变对象大小或隐藏在另一个对象后又重新显示的情况下,设置 AutoRedraw 为 True,将在 Form 或 PictureBox 控件中自动重绘输出。

运行时 在程序中设置 AutoRedraw,可以在画持久图形(如背景色或网格)和临时图形之间切换。如果设置 AutoRedraw 为 False,以前的输出成为背景屏幕的一部分。当 AutoRedraw 设置为 False,用 Cls 方法清除绘图区时不会删除背景图形。把 AutoRedraw 改回 True 后,再用 Cls 将清除背景图形。

注意 如果设置 BackColor 属性,所有图形和文本,包括持久图形,都被清除。一般来说,除非 AutoRedraw 设置为 True,所有图形都需用 Paint 事件显示。

参考资料来源:百度百科-autoredraw

百度网友bdb9803
2014-08-01 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:53%
帮助的人:1亿
展开全部

自动重绘,如果是False的话,不会自动重绘,必须执行Refresh指令才会重绘。
所谓重绘,是指当窗体或控件最小化,或被遮挡以后,再显示的时候,会将被遮挡的部分重新画出来。

例如:

Private Sub Form_Load()
Print "hello"
End Sub

运行代码,你会发现什么变化都没有。

但是,你把窗体的AutoRedraw属性设置为True,再次运行,会发现窗体上有"hello"几个字。而且最小化,再恢复后,这几个字也不会消失。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
糖糖寳寳
推荐于2016-03-25 · TA获得超过6.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:92%
帮助的人:3891万
展开全部
  可以通过2个方法:
  1、将绘制相关代码全部放在 Form_Paint 这个事件中,其实此时不需要什么API,只要Form1.Refresh 就可以再次执行这个事件里的代码了,如果需要不同的显示,那么可以设置多个公共变量,显示不同的时期的样式就设置某个变量为不同的值,然后 Paint 中根据该值执行不同代码
  2、将AutoReDraw设置为TRUE,此时无论代码写在哪,都能将改变立即反映,但是如果程序中设计到调用 Form1.hDC 的时候可能会出问题,这个原因开始我也纳闷过,后来才知道 AutoReDraw设置为TRUE 时获取的 HDC仅是个伪HDC,是获取不到实际的HDC的 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2014-08-01 · TA获得超过1355个赞
知道小有建树答主
回答量:943
采纳率:0%
帮助的人:588万
展开全部
就是假如有一些视觉上的东西改变了,他会自动帮你重新画。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式