2008/02/11
내 멋대로 윈도우 모양 만들기
예전에는 윈도우를 원하는 모양으로 만들기 위해 원하는 모양의 마스크 영상을 만들어 영상의 외곽포인트를 구해 SetWindowRgn를 이용하였는데 이제는(windows 2000 이상) 마스크 영상과 SetLayeredWindowAttributes 함수 만으로 간단하게 해결 할 수 있다.
아래 이미지는 예제 프로그램을 실행하였을때의 실행화면 이다.
마스크 영상으로는 MS Office 2007 에서 따온 영상을 약간 수정하였다.
메인 폼 위에 이미지 컨트롤을 올리고 마스크 영상을 불러들인 후 함수를 호출해주는 것으로 작업이 끝난다.
아래 코드는 폼이 생설할때 수행하는 코드이다.
위의 코드 중에 RGB(1, 1, 1)이 투명 처리를 하기 위한 색상으로 마스크 영상의 투명 부분의 색상을 넣어주면 된다.
Original Post : http://neodreamer-dev.tistory.com/57
아래 이미지는 예제 프로그램을 실행하였을때의 실행화면 이다.
마스크 영상으로는 MS Office 2007 에서 따온 영상을 약간 수정하였다.
메인 폼 위에 이미지 컨트롤을 올리고 마스크 영상을 불러들인 후 함수를 호출해주는 것으로 작업이 끝난다.
아래 코드는 폼이 생설할때 수행하는 코드이다.
this->Color = RGB(1, 1, 1);
SetWindowLong(this->Handle, GWL_EXSTYLE,
GetWindowLong(this->Handle, GWL_EXSTYLE) | WS_EX_LAYERED);
::SetLayeredWindowAttributes(this->Handle,
RGB(1, 1, 1), 0, LWA_COLORKEY);
위의 코드 중에 RGB(1, 1, 1)이 투명 처리를 하기 위한 색상으로 마스크 영상의 투명 부분의 색상을 넣어주면 된다.
Original Post : http://neodreamer-dev.tistory.com/57
Labels:
SetLayeredWindowAttributes
,
TistoryOldPost
,
윈도우 모양
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment