- 'Extrait : Fonction principale
-
- Private Function Fusion(vObj As Object)
- Dim BF As BLENDFUNCTION, lBF As Long
- Dim i As Long
-
- For i = 0 To vObj.ScaleWidth
- BF.SourceConstantAlpha = 255 - Int(255 / vObj.ScaleWidth * i)
- RtlMoveMemory lBF, BF, 4
-
- AlphaBlend vObj.hdc, i, 0, 1, vObj.ScaleHeight, vDCDegrader, 0, 0, 1, vObj.ScaleHeight, lBF
- Next i
- End Function
-
- Private Function Make_Degrader(vObj As Object, vColor1 As Long, vColor2 As Long) As Boolean
- Dim R As Byte, G As Byte, B As Byte
-
- Dim gRect As GRADIENT_RECT
- Dim vVertex(1) As TRIVERTEX
-
- 'BMP degrader
- vDCDegrader = CreateCompatibleDC(GetDC(0))
- vBMPDegrader = CreateCompatibleBitmap(GetDC(0), 1, vObj.ScaleHeight)
- Call SelectObject(vDCDegrader, vBMPDegrader)
-
- gRect.UpperLeft = 0
- gRect.LowerRight = 1
-
- Call GetRGB(vColor1, R, G, B)
-
- vVertex(0).X = 0
- vVertex(0).Y = 0
- vVertex(0).Red = "&H" & Hex(R / 16 * 256 * 16)
- vVertex(0).Green = "&H" & Hex(G / 16 * 256 * 16)
- vVertex(0).Blue = "&H" & Hex(B / 16 * 256 * 16)
- vVertex(0).Alpha = 0
-
- Call GetRGB(vColor2, R, G, B)
-
- vVertex(1).X = 1
- vVertex(1).Y = vObj.ScaleHeight
- vVertex(1).Red = "&H" & Hex(R / 16 * 256 * 16)
- vVertex(1).Green = "&H" & Hex(G / 16 * 256 * 16)
- vVertex(1).Blue = "&H" & Hex(B / 16 * 256 * 16)
- vVertex(1).Alpha = 0
-
- Make_Degrader = GradientFill(vDCDegrader, vVertex(0), 2, gRect, 1, GRADIENT_FILL_RECT_V)
-
- If vStyle = 1 Then
- Call SetPixel(vDCDegrader, 0, 0, vStyleColor)
- Call SetPixel(vDCDegrader, 0, vObj.ScaleHeight - 1, vStyleColor)
- End If
- End Function
'Extrait : Fonction principale
Private Function Fusion(vObj As Object)
Dim BF As BLENDFUNCTION, lBF As Long
Dim i As Long
For i = 0 To vObj.ScaleWidth
BF.SourceConstantAlpha = 255 - Int(255 / vObj.ScaleWidth * i)
RtlMoveMemory lBF, BF, 4
AlphaBlend vObj.hdc, i, 0, 1, vObj.ScaleHeight, vDCDegrader, 0, 0, 1, vObj.ScaleHeight, lBF
Next i
End Function
Private Function Make_Degrader(vObj As Object, vColor1 As Long, vColor2 As Long) As Boolean
Dim R As Byte, G As Byte, B As Byte
Dim gRect As GRADIENT_RECT
Dim vVertex(1) As TRIVERTEX
'BMP degrader
vDCDegrader = CreateCompatibleDC(GetDC(0))
vBMPDegrader = CreateCompatibleBitmap(GetDC(0), 1, vObj.ScaleHeight)
Call SelectObject(vDCDegrader, vBMPDegrader)
gRect.UpperLeft = 0
gRect.LowerRight = 1
Call GetRGB(vColor1, R, G, B)
vVertex(0).X = 0
vVertex(0).Y = 0
vVertex(0).Red = "&H" & Hex(R / 16 * 256 * 16)
vVertex(0).Green = "&H" & Hex(G / 16 * 256 * 16)
vVertex(0).Blue = "&H" & Hex(B / 16 * 256 * 16)
vVertex(0).Alpha = 0
Call GetRGB(vColor2, R, G, B)
vVertex(1).X = 1
vVertex(1).Y = vObj.ScaleHeight
vVertex(1).Red = "&H" & Hex(R / 16 * 256 * 16)
vVertex(1).Green = "&H" & Hex(G / 16 * 256 * 16)
vVertex(1).Blue = "&H" & Hex(B / 16 * 256 * 16)
vVertex(1).Alpha = 0
Make_Degrader = GradientFill(vDCDegrader, vVertex(0), 2, gRect, 1, GRADIENT_FILL_RECT_V)
If vStyle = 1 Then
Call SetPixel(vDCDegrader, 0, 0, vStyleColor)
Call SetPixel(vDCDegrader, 0, vObj.ScaleHeight - 1, vStyleColor)
End If
End Function