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>放置“透明”的&#22270;片 (97/11/18)  <br>在 VB 中,如果你&#35797;&#30528;把一只有&#40479;的&#22270;片放到背景的一棵&#26641;上,你就&#20250;&#21457;&#29616;&#26641;&#20250;被&#40479;遮住一&#20010;矩形的&#21306;域(即&#40479;的&#22270;片矩形)。我&#20204;可以通&#36807;以下方法使&#22270;片上非&#40479;的其它部分&#21464;透明: <br>我&#20204;可以利用一&#20010; WinAPI 函&#25968; BitBlt &#23545;&#22270;形&#36827;行一系列的位操作&#26469;&#36798;到此目的。 <br>函&#25968;&#22768;明: <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>&#21442;&#25968;解&#37322;: <br>目&#26631;&#29615;境:hDestDC--目&#26631;&#35774;&#22791;&#29615;境;x--左上角;y--&#39030;端;nWidth--&#23485;;nHeight--高 <br>源&#29615;境:hSrcDC--源&#35774;&#22791;&#29615;境;xSrc--源左上角;ySrc--源&#39030;端; <br>dwRop--位&#22788;理操作,如 vbSrcAnd;vbSrcAnd;vbSrcCopy;vbSrcErase;vbSrcInvert 等 <br>(目&#26631;&#29615;境或源&#29615;境只能是 Picture, Form 或 Printer &#23545;象。各&#21333;位&#20026;象素。) <br>&#36827;行&#22788;理之前,我&#20204;需要&#23545;&#40479;的&#22270;片&#36827;行&#22788;理:先复制一份相同的&#22270;形,&#23558;其&#24212;&#35813;透明之&#22788;(&#40479;的背景)&#35774;置&#20026;黑色(&#35774;此&#22270;&#20026;sPic),再&#23558;另一&#22270;做以下&#22788;理:要复制的地方(&#40479;)&#35774;置&#20026;黑色,其余地方&#35774;置(&#40479;的背景)&#20026;白色(&#35774;此&#22270;&#20026;Mask)。 <br>&#35774;&#26641;的&#22270;形&#20026;名dPic。 <br>最后,&#35831;加入以下代&#30721;: <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>后&#35760;: <br>1、VB 中的 PaintPicture 方法提供&#31867;似功能,但速度不及此方法; <br>2、在此方法上稍微加入一些代&#30721;,就不&#38590;&#23454;&#29616;&#21160;&#30011;的&#26174;示。 <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 + -
显示快捷键?