예전에 제가 진행했던 허접 프로젝트중에서...

나니카(=무언가)를 모방해서 만들어보고자 한 적이 있었습니다.

채팅 기능과 플러그인 기능을 넣은 버전을 만들기 위한 목적이었는 데요.

(이하 그 것)






잠시 그 것에 대해서 설명을 해보자면은..



바탕화면에 두가지 캐릭터의 이미지가 나와서 여러가지 이야기를 하는 악세사리입니다.





폼을 숨기고서 해당 이미지의 그려질 부분만을 화면에 표시해주는 것을 구현하고 있었는데..



데브피아에서 있는 폼을 투명하게하는 예제들은 거의.. 폼 위에 있는 이미지 컨트롤도 투명하게 만듭니다.



따라서 제가 선택한 방법은... 뒤에 있는 배경화면을 가져와서 이미지가 그려질 부분을 제외한 곳에 뿌려주는 것입니다.



그래서 다른 프로그램이 그 것을 덮었다가 해제되었을때에.. 그 것을 새로 그려주어야 했습니다.


그 것이 다른 윈도우에 덮였다가 다시 모습을 들어내게되는 시점이 폼이 포커스를 얻는 시점이라 생각하고..



해당 이벤트로 코딩을 해놓았는 데..  생각처럼.. 다른 프로그램에 가려졌다가 그 폼으로 포커스가 넘어왔을때에..

해당 이벤트가 발생하지 않더군요.

그래서 문의해본 결과로는.. 같은 프로그램이 동작하는 상황 안에서.. 여러 폼 중에서

해당 폼이 포커스가 들어왔을 경우만.. 그 이벤트가 발생한다고 하더군요.

그래서 무한 루프나 타이머를 이용해서 해본 결과로는..  리소스를 많이 먹고.. 그림이 차근차근 그려지더군요 -_-aa

지금 생각에는.. 미리 메모리에 그릴 그림을 다 그린 후에.. 표시하는 거랑..

다이렉트X 를 사용하는 것으로.. 해결이 될 것 같기도 한데..

역시나.. 무한 루프라던지.. 타이머는.... 비효율적인 것 같아서요 -_-aa

여기에 관해서 사용할만한 API라던가 조언을 해주셨으면 합니다.

더 중대한 문제는 다음 문제에서 발생하는 데요..


두번째 문제는.. 나니카의 경우나 기타 악세사리의 경우를 보자면...

이미지의 공백부분을 클릭할 시에.. 클릭 이벤트가.. 해당 폼을 지나서...

그 뒤에 있는 다른 아이콘에 전달되는데요.

예를 들자면..

┏   이미지 크기( 폼 영역) ━━━━━━┓
┃ (공백부분)                                    ┃
┃                   //보이는 부분/////      ┃
┃ [아이콘]  //////////////////////   ┃
┃                  /////////////////        ┃
┗━━━━━━━━━━━━━━━━━┛

물론 사용자는.. 뒤에 있는 아이콘을 클릭하는 것이겠지만...

프로그램 입장에서는.. 자신에게 이벤트가 발생됩니다.. ;;

이때에.. 일일히.. 뒤에 있는 프로그램을 찾아서 메시지를 넘겨주도록..

코딩을 해야하는 걸까요..? -_-aa

예를 들어서 다음과 같은 경우에..

┏프로그램1━━━━━━┓
┃                               ┃
┃                               ┃
┃                               ┃━프로그램2━┓
┃                           ★ ┃                    ┃
┗━━━━━━━━━━┛                     ┃
                          ┃                            ┃
                          ┗━━━━━━━━━┛

★ 지점을 클릭한다고 해서.. 프로그램2에 까지 클릭 이벤트가 넘어가진 않잔아요..??

그렇다면..제가 첫번째 질문하면서.. 예상한 해결방안이 아니라..

아예 폼을 해당 이미지의 보여지는 부분으로 일그러트려서 -_-aa

해당 이미지의 보여질 부분만이 폼의 영역이 되도록 조정해야되는 것일까요..??

구멍뚤린 폼이라던가.. 다각형 폼 등등은 들어본 기억이 있는 것 같기도 하지만 -_-;;

예를 들어서... 이미지가 소녀라면.. 소녀 형태로.. 폼을 재형성 시키는 예는

들어보지 못한 것 같은 데요.. -_-;;;


그럼 답변 부탁드리겠습니다.. ^^a