當前位置:編程學習大全網 - 網站源碼 - vb6使圖片背景透明

vb6使圖片背景透明

方法就是利用SetWindowLong設置圖片框的“風格”,使其包含WS_EX_LAYERED,然後再利用SetLayeredWindowAttributes來透明掉圖片框內的背景(必須是純色的)。

代碼如下:

'下面的代碼加到“通用?聲明”裏

Private?Declare?Function?SetWindowLong?_

Lib?"user32"?Alias?"SetWindowLongA"?_

(ByVal?hwnd?As?Long,?ByVal?nIndex?As?Long,?_

ByVal?dwNewLong?As?Long)?As?Long

Private?Declare?Function?GetWindowLong?_

Lib?"user32"?Alias?"GetWindowLongA"?_

(ByVal?lhWnd?As?Long,?_

ByVal?nIndex?As?Long)?As?Long

Private?Declare?Function?SetLayeredWindowAttributes?_

Lib?"user32"?_

(ByVal?lhWnd?As?Long,?ByVal?crKey?As?Long,?_

ByVal?bAlpha?As?Byte,?ByVal?dwFlags?As?Long)?As?Long

Private?Const?GWL_EXSTYLE?=?(-20)

Private?Const?WS_EX_LAYERED?=?&H80000

Private?Const?LWA_COLORKEY?=?&H1

'下面的代碼加到妳想透明的地方

'假設要透明的PictureBox為Pict1,背景色為白色

Dim?ws?As?Long

ws?=?GetWindowLong(Pict1.hWnd,?GWL_EXSTYLE)?Or?WS_EX_LAYERED

SetWindowLong?Pict1.hWnd,?GWL_EXSTYLE,?ws

'下面的vbWhite可以換成要透明的背景色

SetLayeredWindowAttributes?Pict1.hWnd,?vbWhite,?0,?LWA_COLORKEY

  • 上一篇:用VB編寫層次分析法的三標度法
  • 下一篇:我在廣東省河源,想到山東濰坊去,做火車做多久?路線都有那些?費用多少?真心求
  • copyright 2024編程學習大全網