VB6 - Bir formu saydam yapma
Başlamak
Visual Basic'te bir formun nasıl saydam hale getirildiğinin kısa bir örneği.Not: Bunun çalışması için bir renk paleti dahil edilmelidir.
Bir modülde
Özel Bildirim İşlevi GetWindowLong Lib "user32" Alias "GetWindowLongA" (Uzun Süren ByVal hWnd, Uzun Süren ByVal nIndex)Özel Bildirim İşlevi SetWindowLong Lib "user32" Alias "SetWindowLongA" (Uzun Süren ByVal hWnd, Uzun Süren ByVal nIndex, Uzun Süren ByWal dWNewLong)
Özel Bildirim Fonksiyonu SetLayeredWindowAttributes Lib "user32" (ByVal hWnd Uzun, ByVal crKey Uzun, ByVal bDefaut Uzun Bayt, ByVal dwFlags Uzun)
Özel Const GWL_EXSTYLE Uzun Süreli = (-20)
Özel Const LWA_COLORKEY Uzun Süreli = H1
Özel İnşaat LWA_Defaut Uzun Süre = & H2
Özel Const WS_EX_LAYERED Uzun Süreli = & H80000
'
Genel İşlev Şeffaflığı (ByVal hWnd Uzun, İsteğe Bağlı ByVal Col Uzun) = vbBlack, _
Opsiyonel ByVal PcTransp Byte = 255, Opsiyonel ByVal TrMode Boolean olarak = True) Boolean olarak
'Geri Dön: Hata yoksa doğru.
'hWnd: Pencereyi hWnd şeffaf yapmak
'Col: TrMode = False ise şeffaf hale getirmek için renk
'PcTransp: 0 Ã 255 >> 0 = saydam -: - 255 = Opak
Dim Ekran Uzunluğu
Hata Durumunda Çık
VoirStyle = GetWindowLong (hWnd, GWL_EXSTYLE)
Eğer DisplayStyle (DisplayStyle Veya WS_EX_LAYERED) ise
DisplayStyle = (DisplayStyle Veya WS_EX_LAYERED)
SetWindowLong'u arayın (hWnd, GWL_EXSTYLE, DisplayStyle)
Bittiğinde
Şeffaflık = (SetLayeredWindowAttributes (hWnd, Col, PcTransp, IIf (TrMode, LWA_COLORKEY Veya LWA_Defaut, LWA_COLORKEY)) 0)
Çıkış:
Err.Number = 0 değilse Err.Clear
Son İşlev
Genel Alt ActiveTransparency (Form M, Boolean, D Bool, M)
T_T Tamsayı Olarak Şeffaflık, İsteğe Bağlı Renk Uzunluğunda)
Bool olarak Dim B
D ve F Öyleyse
'Rengi (burada şeklin arka plan rengi) saydam yapar
'T_Transparency değerine göre
B = Şeffaflık (M.hWnd, Renk, T_Transparlık, Yanlış)
Başka d Sonra
Tüm bileşenleri de içeren şeffaf hale getirir.
'T_Transparency değerine göre
B = Şeffaflık (M.hWnd, 0, T_Transparency, True)
Başka
'Opak formunu geri yükler.
B = Şeffaflık (M.hWnd,, 255, Doğru)
Bittiğinde
Son Alt
Bir formda kullanıldığı gibi
Özel Alt Form_Load ()Tamsayı Olarak Dim i
'Örn: tümü şeffaf / 140/255
'ActiveTransparency Me, Doğru, Yanlış, 140, Me.BackColor
Örn: Form 140/255 oranında saydam, görünür bileşen oluşturur
'ActiveTransparency Me, Doğru, Doğru, 140, Me.BackColor
'Örnek, form şeffaflık bozulmasını gösterir.
ActiveTransparency Me, Doğru, Yanlış, 0
Me.Show
İ = 0 ila 255 için Adım 3
ActiveTransparency Me, Doğru, Yanlış
Me.Refresh
Sıradaki ben
Son Alt