[파워빌더API] Window화면을 반투명하게 (WIN2000 이상)
External Function에 다음을 기술합니다.
//Function Long SetLayeredWindowAttributes (Long hWnd ,Long crKey ,Blob bAlpha ,Long dwFlags ) Library "user32 "
//Function Long SetWindowLongA (Long hWnd ,Long nIndex ,Long dwNewLong ) Library "user32"
------------------------------------------------
//Window Open Event에 기술했습니다.
Constant Long LWA_ALPHA = 2
Constant Long GWL_EXSTYLE = (-20)
Constant Long WS_EX_LAYERED = 524288
Blob{150} LB_TRANSPARENT //{} 안에 들어가는 값에 따라 투명도가 변경됨
SetWindowLongA(Handle(This), GWL_EXSTYLE, WS_EX_LAYERED)
SetLayeredWindowAttributes(Handle(This),0,LB_TRANSPARENT,LWA_ALPHA)
WIN2000 이상 에서만 되는군요.
handle값을 넘겨주면 다른 프로그램도 반투명이 됩니다.
================
//Function Long SetLayeredWindowAttributes (Long hWnd ,Long crKey ,blob bAlpha ,Long dwFlags ) Library "user32 " //Function Long SetLayeredWindowAttributes (Long hWnd ,Long crKey ,char bAlpha ,Long dwFlags ) Library "user32 " blob을 char로 선언하고 투명도는 0~255 (0은 안보임,255는 불투명) SetLayeredWindowAttributes(Handle(This),0,char(0),LWA_ALPHA) //완전투명 SetLayeredWindowAttributes(Handle(This),0,char(150),LWA_ALPHA) //반투명 SetLayeredWindowAttributes(Handle(This),0,char(255),LWA_ALPHA) //불투명 blob을 char 로 바꿔쓰면 농도조절이 가능한다는것을 이제야 알게되었네요. byte값을 넘기는 거라 blob으로 해야할거라 생각했는데. char 또한 마찬가지임을 생각치 못한 어리석음 이었네요..
//Function Long SetLayeredWindowAttributes (Long hWnd ,Long crKey ,Blob bAlpha ,Long dwFlags ) Library "user32 "
//Function Long SetWindowLongA (Long hWnd ,Long nIndex ,Long dwNewLong ) Library "user32"
------------------------------------------------
//Window Open Event에 기술했습니다.
Constant Long LWA_ALPHA = 2
Constant Long GWL_EXSTYLE = (-20)
Constant Long WS_EX_LAYERED = 524288
Blob{150} LB_TRANSPARENT //{} 안에 들어가는 값에 따라 투명도가 변경됨
SetWindowLongA(Handle(This), GWL_EXSTYLE, WS_EX_LAYERED)
SetLayeredWindowAttributes(Handle(This),0,LB_TRANSPARENT,LWA_ALPHA)
WIN2000 이상 에서만 되는군요.
handle값을 넘겨주면 다른 프로그램도 반투명이 됩니다.
================
//Function Long SetLayeredWindowAttributes (Long hWnd ,Long crKey ,blob bAlpha ,Long dwFlags ) Library "user32 " //Function Long SetLayeredWindowAttributes (Long hWnd ,Long crKey ,char bAlpha ,Long dwFlags ) Library "user32 " blob을 char로 선언하고 투명도는 0~255 (0은 안보임,255는 불투명) SetLayeredWindowAttributes(Handle(This),0,char(0),LWA_ALPHA) //완전투명 SetLayeredWindowAttributes(Handle(This),0,char(150),LWA_ALPHA) //반투명 SetLayeredWindowAttributes(Handle(This),0,char(255),LWA_ALPHA) //불투명 blob을 char 로 바꿔쓰면 농도조절이 가능한다는것을 이제야 알게되었네요. byte값을 넘기는 거라 blob으로 해야할거라 생각했는데. char 또한 마찬가지임을 생각치 못한 어리석음 이었네요..