你可以這樣的解決你的問(wèn)題:
創(chuàng)新互聯(lián)是一家專業(yè)提供惠安企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、HTML5建站、小程序制作等業(yè)務(wù)。10年已為惠安眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
(我用的是vs。net2005)
button1.backcolor=transprent
這樣你自己好好的試一試吧,我試了一下,感覺(jué)不錯(cuò)。
PS:一下代碼是復(fù)制的,因?yàn)镚oogle一下就有
‘添加新模塊:
Option Explicit
'透明接口調(diào)用
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 hwnd As Long, _
ByVal nIndex As Long) _
As Long
Private Declare Function SetLayeredwindowAttributes Lib "user32" ( _
ByVal hwnd As Long, _
ByVal crKey As Long, _
ByVal bAlpha As Long, _
ByVal dwFlags As Long) _
As Long
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_ALPHA As Long = H2
Private Const WS_EX_LAYERED As Long = H80000
'設(shè)置窗口透明度
Public Sub SetFormToAlpha(hwnd As Long, lngAlpha As Long)
Dim tmpLog As Long
If hwnd = 0 Then Exit Sub
If lngAlpha = 0 And lngAlpha = 255 Then
tmpLog = GetwindowLong(hwnd, GWL_EXSTYLE) '窗口屬性
Call SetwindowLong(hwnd, GWL_EXSTYLE, tmpLog or WS_EX_LAYERED)
Call SetLayeredwindowAttributes(hwnd, 0, lngAlpha, LWA_ALPHA)
End If
End Sub
簡(jiǎn)單的部分透明比較難做,不過(guò)可以換個(gè)方式考慮一下。
把本問(wèn)題轉(zhuǎn)換成在VB.NET 2005環(huán)境下創(chuàng)建不規(guī)則窗體(=普通窗體 - 透明部分)問(wèn)題,解決方法就很多了,網(wǎng)上也有許多例子。如 章立民 的書(shū)里就詳細(xì)講過(guò)。
大致思路如下:
1。將backgroundimage設(shè)成一個(gè)位圖(點(diǎn)陣圖)
2.將Transparaencykey設(shè)成位圖的背景顏色(位圖最取背景單純,單純部分將成為透明部分)
3.如需要可以將formborderstyle設(shè)為none,會(huì)移除標(biāo)題欄,并需要手動(dòng)編寫窗體移動(dòng)、關(guān)閉等動(dòng)作代碼,
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
Me.BackColor = Color.White
Me.TransparencyKey = Color.White
End Sub
End Class
VB6專家百度Hi群1358368
窗體半透明: FormXX.Opacity=0.5或者: SetStyle(ControlStyles.SupportsTransparentBackColor, True)ControlXX.BackColor = Color.Transparent '或者是帶Alpha的顏色ControlXX.BackColor = Color.FromArgb(128,Color.Red)
做二個(gè)窗口,下面那個(gè)透明,上面那個(gè)不透明。
解決移動(dòng)的問(wèn)題:移動(dòng)上面那個(gè)窗口同時(shí),要設(shè)置下面那個(gè)窗口的位置。做到同步移動(dòng),就可以實(shí)現(xiàn)你說(shuō)的效果了。