VB6 - vormi läbipaistvaks muutmine

VB6 või Visual Basic 6 programmi saab kasutada VB6 vormi läbipaistvaks muutmiseks . VB6-s programmide kirjutamiseks on vaja mõningaid teadmisi programmeerimiskontseptsioonidest ja keeltest nagu Visual Basic. VB6-s programmide kirjutamiseks on vaja põhiteadmisi alamprogrammidest, if-other-silmusest ja Visual Basic-funktsioonidest. Programmi VB6 vormi läbipaistvaks muutmiseks saab kirjutada, kasutades VB6 funktsioone, nagu SetLayeredWindowAttributes funktsiooni ja bittoperatsioone, kasutaja määratud alamprogrammis. Seda kasutaja määratud alamprogrammi nimetatakse vormi sündmuseks, olenevalt sellest, millal vorm laadib.

Alustamine

Siin on lühike näide sellest, kuidas muuta vorm Visual Basicis läbipaistvaks.

Märkus: Selleks, et see toimiks, tuleb lisada värvipalett.

Moodulis

 Eraldi deklareerige funktsioon GetWindowLong Lib "user32" Alias ​​"GetWindowLongA" (ByVal hWnd nii kaua, ByVal nIndex nii kaua) kui pikk

Private Declare Funktsioon SetWindowLong Lib "user32" Alias ​​"SetWindowLongA" (ByVal hWnd nii kaua, ByVal nIndex kui pikk, ByVal dwNewLong nii kaua) kui pikk

Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd nii kaua, ByVal crKey nii kaua, ByVal bDefaut kui bait, ByVal dwFlags As Long) kui pikk

Privaatne Const GWL_EXSTYLE nii kaua = (-20)

Privaatne Const LWA_COLORKEY Nagu pikk = & H1

Private Const LWA_Defaut Nii kaua = & H2

Privaatne Const WS_EX_LAYERED nii kaua = & H80000

'

Avalike funktsioonide läbipaistvus (ByVal hWnd nii pikk, valikuline ByVal Col nii kaua = vbBlack, _

Valikuline ByVal PcTransp kui bait = 255, valikuline ByVal TrMode kui loogiline = tõene) kui loogiline

'Return: True, kui viga ei ole.

hWnd: hKas akna läbipaistvus

„Col: Color, et muuta läbipaistev, kui TrMode = False

'PcTransp: 0 Ã 255 >> 0 = läbipaistev -: - 255 = läbipaistmatu

Dim DisplayStyle As Long

Viga GoTo Exit

VoirStyle = GetWindowLong (hWnd, GWL_EXSTYLE)

Kui DisplayStyle (DisplayStyle või WS_EX_LAYERED) siis kuvatakse

DisplayStyle = (DisplayStyle või WS_EX_LAYERED)

Helista SetWindowLong (hWnd, GWL_EXSTYLE, DisplayStyle)

Lõpeta kui

Läbipaistvus = (SetLayeredWindowAttributes (hWnd, Col, PcTransp, IIf (TrMode, LWA_COLORKEY või LWA_Defaut, LWA_COLORKEY)) 0)

Välju:

Kui ei ole viga.Number = 0, siis Err.Clear

Lõppfunktsioon

Avalik subaktiivne läbipaistvus (M kui vorm, d kui loogiline, F kui loogiline, _

T_Transparency tervikuna, valikuline värvus pikk

Dim B kui loogiline

Kui d ja F siis

„Muudab värvi (siin kuju taustavärvi) läbipaistvaks

'T_Transparency väärtuse järgi

B = läbipaistvus (M.hWnd, Color, T_Transparency, False)

Kui te siis d

„Muudab vormi, sealhulgas kõik komponendid, läbipaistvaks

'T_Transparency väärtuse järgi

B = läbipaistvus (M.hWnd, 0, T_Transparency, True)

Veel üks

'Taastab vormi läbipaistmatu.

B = läbipaistvus (M.hWnd,, 255, tõene)

Lõpeta kui

Lõpeta alam

Nagu kasutatakse vormis

 Privaatne alamvorm_Load ()

Dim i As Integer

„Näide: kõik läbipaistvad suhtega 140/255

'ActiveTransparency Me, True, False, 140, Me.BackColor

Näide: Vorm läbipaistva, nähtava komponendi suhe 140/255

'ActiveTransparency Me, True, True, 140, Me.BackColor

Näide näitab vormi läbipaistvuse halvenemist

ActiveTransparency Me, True, False, 0

Näita

I = 0 kuni 255 etapp 3

ActiveTransparency Me, True, False, i

Me uuendada

Järgmine i

Lõpeta alam

Eelmine Artikkel Järgmine Artikkel

Top Näpunäited