3836.html
来自「以电子书的形式收集了VB一些常见问题解决方法,可以很方便的查找自己需要解决的问题」· HTML 代码 · 共 23 行
HTML
23 行
<html>
<head>
<title>A way to transparent a form...</title>
</head>
<body bgcolor="#FFFFFF" vlink="#808080">
<center>
<h1>A way to transparent a form...</h1>
</center>
<hr size=7 width=75%>
<hr size=7 width=75%><p>
Posted by <a href="mailto:wangkai@nease.net">kingkong</a> on July 12, 1998 at 15:58:52:<p>
In Reply to: <a href="3829.html">VB 5.0 能作不规则外型的Form吗?</a> posted by Sonora on July 12, 1998 at 03:18:28:<p>
Try this code (from http://www.nease.net/~jackyyin), it can transparent a picture, you can use form to do it :<br>=====================================<br>Note: this code is writen in Chinese GB code !!!<br>I have no time to change to BIG-5 code.<br>==========================================<p><br>放置“透明”的图片 (97/11/18) <br>在 VB 中,如果你试着把一只有鸟的图片放到背景的一棵树上,你就会发现树会被鸟遮住一个矩形的区域(即鸟的图片矩形)。我们可以通过以下方法使图片上非鸟的其它部分变透明: <br>我们可以利用一个 WinAPI 函数 BitBlt 对图形进行一系列的位操作来达到此目的。 <br>函数声明: <br>Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long<br>参数解释: <br>目标环境:hDestDC--目标设备环境;x--左上角;y--顶端;nWidth--宽;nHeight--高 <br>源环境:hSrcDC--源设备环境;xSrc--源左上角;ySrc--源顶端; <br>dwRop--位处理操作,如 vbSrcAnd;vbSrcAnd;vbSrcCopy;vbSrcErase;vbSrcInvert 等 <br>(目标环境或源环境只能是 Picture, Form 或 Printer 对象。各单位为象素。) <br>进行处理之前,我们需要对鸟的图片进行处理:先复制一份相同的图形,将其应该透明之处(鸟的背景)设置为黑色(设此图为sPic),再将另一图做以下处理:要复制的地方(鸟)设置为黑色,其余地方设置(鸟的背景)为白色(设此图为Mask)。 <br>设树的图形为名dPic。 <br>最后,请加入以下代码: <br>R=BitBlt(dPic.hdc,0,0,sPic.Width,sPic.Height,Mask.hdc,0,0,vbScrCopy) <br>R=BitBlt(dPic.hdc,0,0,sPic.Width,sPic.Height,sPic.hdc,0,0,vbScrInvert) <br>后记: <br>1、VB 中的 PaintPicture 方法提供类似功能,但速度不及此方法; <br>2、在此方法上稍微加入一些代码,就不难实现动画的显示。 <br>3、VB 例子中的 CallDlls 就使用此方法。
<br>
<br><hr size=7 width=75%><p>
<a name="followups">Follow Ups:</a><br>
<ul><!--insert: 3836-->
</ul><!--end: 3836-->
<br><hr size=7 width=75%><p>
</body></html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?