네이트온에 알림창과 같이 폼에 페이드효과가 필요할 때 아래 코드를 참고하자.
Alpha 와 같이 함수형태로 만들어 놓고 핸들값과 Degree값만 바이트 범위(0~255) 내에서 넘겨주면 된다.
Private Declare Function SetLayeredWindowAttributes Lib "user32" _
(ByVal hWnd As Long, _
ByVal crKey As Long, _
ByVal bAlpha As Byte, _
ByVal dwFlags As Long) As Long
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 Const GWL_EXSTYLE = (-20)
Private Const WS_EX_LAYERED = &H80000
Private Const LWA_COLORKEY = &H1
Private Const LWA_ALPHA = &H2
Private Sub Alpha(ByVal hHandle As Long, ByVal byDegree As Byte)
SetWindowLong hHandle, GWL_EXSTYLE, GetWindowLong(hHandle, GWL_EXSTYLE) Or WS_EX_LAYERED
SetLayeredWindowAttributes hHandle, 0&, byDegree, LWA_ALPHA
End Sub
아래는 호출하는 형태
Private Sub Form_Activate()
Dim i As Long
For i = 0 To 255
Alpha Me.hWnd, CByte(i)
DoEvents
Next i
End Sub
Tip.
LWA_COLORKEY를 적용하면 지정한 색상만 투명하게 만들 수 있다.
Private Sub Transparent(ByVal hHandle As Long, ByVal lColor As Long)
SetWindowLong hHandle, GWL_EXSTYLE, GetWindowLong(hHandle, GWL_EXSTYLE) Or WS_EX_LAYERED
SetLayeredWindowAttributes hHandle, lColor, 0&, LWA_COLORKEY
End Sub
'VB6 > Interface' 카테고리의 다른 글
폼에 보여줄 영역 만들기(구멍난 폼) (0) | 2013.03.28 |
---|---|
폼 타이틀바 Show/Hide (0) | 2013.03.28 |
바탕화면 아이콘 Show/Hide (0) | 2013.03.28 |
폼 위치, 크기 구하기 (0) | 2013.03.27 |
폼 타이틀바 이동효과 (0) | 2013.03.26 |