📄 m43.htm
字号:
<html>
<head>
<title>VB教程</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<p align="center"><script src="../../1.js"></script></a>
<body bgcolor="#ffffff" leftmargin="5" topmargin="1" marginheight="5" marginwidth="5">
<div align=center>
<table border=0 cellpadding=0 cellspacing=0 width=680 align="center">
<tbody>
<tr>
<td bgcolor=#000000 height=9>
<div align=center class=H1> <font color="#FFFFFF">AutoRedraw与Image Picture属性的关联</font> </font> </font></div>
</td>
</tr>
<tr valign=top>
<td class=H1 height=76>
<p align="left"><br>
<span class="unnamed1">我们发现,在Form或PictureBox中有一个Picture属性物件,另外还有一个Image属性物
件,Picture物件应该很清楚,它是用来存放图形资讯的,可是Image呢?它也是用来存 图形资讯,但二者不相同;Image的影像是在记忆体中、看不见的影像,这看不见的影像
对映着我们在萤上看见的影像(我们见到的是Picture物件之影像)。也就是说一共有两份 影像,一份在记体看不见的(Image),另一份看得见(Picture)。而AutoRedraw是作为切
换这二者之机制,当AutoRedraw设为False时,在上面的绘图会影响Picture,而且会立 刻让我们看到绘图的果结果,此时Form/PictureBox的hdc是Picture的Device
Context Handle。而AutoRedraw设为true时,所有绘图动作是在Image上做的,所以我们发现萤幕 上没有绘图之变化,而此时Form/PictureBox的hdc是Image的Device
Context Handle(如 果您在AutoRedraw为true与False时各别列印hdc来看,两个hdc的值会不相同),而画面的变化是直到我们用Refresh指令时,才见得着。事实上Refresh
的指令做了以下的动 作:et Obj.Picture = Obj.Image (Obj为Form或PictureBox);即使用看不见的那份
Image影像来覆盖Picture的影像。<br>
<br>
这有什麽用呢?当我们使用Set Form1.Picture = LoadPicture("mypic.bmp") 後,这 mypic.bmp会同时指定给Form1的Image与Picture,而我们如果在AutoRedraw=False的情
况下绘图,所有的绘图会立刻显示,下个efresh则所有方才的绘图会被Image的影像所还原,因Image内影像和Picture未绘图前的影像相同,所以好像图又回复原状了。相对的,如果们想画一个图,而画的步骤有好几步,如果希望全部画完後才一口气显示,那麽,就只有设AutoRedraw为True,那所有的绘图都针对Image来做,不会显示於画面,当全画好了,就下一个Refresh的指令,就把Image的影像Copy到Picture上,而我们就能见着啦。另外,我们如果绘图於Picture上(非Image上,即设AutoRedraw
= False),当有其他的Window盖住我们的Window,而後再移开时,会发现方才的绘图不见了,相反的当AutoRedraw设为True时,不管是Resize或重新Paint,都会拿记忆体的那份图来画,所以别的Window移开时,我们Window上的绘图都还在,没有消失(所以这才叫AutoRedraw)
</span></font> <br>
</p>
</td>
</tr>
</table>
</div>
<p align="center"><a href="../../pian/vb.htm">回首页</a>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -