우선, 창 반투명 VB효과 소스를 올립니다.
### 선언 부분 ###
Private Const LWA_ALPHA = 2
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = -20
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal color As Long, ByVal x As Byte, ByVal alpha As Long) As Boolean
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
### Form / Load 부분 ###
Private Sub Form_Load()
SetWindowLong Me.hwnd, GWL_EXSTYLE, WS_EX_LAYERED
SetLayeredWindowAttributes Me.hwnd, 0, 100, LWA_ALPHA
End Sub
아래는 제가 창조 문법에 맞게 바꾸어 본 것입니다. ^^;
### 초기화 명령어 ###
실수:LWA_ALPHA; 실수:WS_EX_LAYERED; 실수:GWL_EXSTYLE; LWA_ALPHA:=2; WS_EX_LAYERED:=524288; GWL_EXSTYLE:=-20;
### 창 생성할때 부분 ###
사용자함수0.SetWindowLongA(기본창.핸들,GWL_EXSTYLE,WS_EX_LAYERED); 사용자함수0.SetLayeredWindowAttributes(기본창.핸들,0,100,LWA_ALPHA);
이상입니다..
여기서, 중요한 정보를 알려 드립니다... VB에서 위의 VB소스를 해 보니, 반투명 효과가 분명히 됬습니다.
창조 소스의 중요한 정보입니다..
ㅎ창의 이름은 기본창 입니다....
아래는 사용자함수0 에 선언된 함수입니다.. (연결파일 : user32.dll)
실수함수:SetLayeredWindowAttributes(실수:hwnd, color, x, alpha);
실수함수:SetWindowLongA(실수:hwnd, nIndex, dwNewLong);
왜 안될까요 -_-;; (저 혼자, 기술(?)을 개척하려고 했는데.. -_-;;) |