AutoRedraw属性的机理是什么?

lyi 2000-11-05 05:53:00
AutoRedraw属性的机理是什么,它是如何实现Refresh,Cls的,Picture,Image属性在设备场景中有什么区别,请用设备场景等API知识来回答。
...全文
115 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Edward 2000-11-05
  • 打赏
  • 举报
回复
具体情况不太清楚,大概应该是这样:

AutoRedraw 设为 True 时,VB 内部的显示机制就创建一内存 DC,然后在每次窗口显示内容有变化的时候(如,Line/PSet 等,VB 当然知道你调用了这些方法),用 BitBlt 之类的 API 吧当前窗口的屏幕图像 COPY 到这个内存 DC 中去。每次需要窗口需要重画的时候(如,被某个窗口遮住的部分显示出来),再把内存 DC 中的位图 BitBlt 回来。

这样做就使你不必自己写代码维护重画部分的工作,只要把图形显示出来一次,你就不用担心了。但是大多多数情况下,内存 DC 和相关的位图占用很多的资源,重画的效果一般情况下很慢,要慎重考虑使用。

如何实现 Refresh 和 Cls 就不用讲了吧?

Picture 和 Image 是标准的 OLE Automation 接口 IPictureDisp 的实现,通过 IPictureDisp 可以得到的属性可以在 Object Browser 中清楚地看到。

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧