Q&A

  • 투명한 자식창 만들기
Window API에 관한 질문인데요.. 이거가지구 거의 한달남짓 고생하다가 이제 포기직전이에요.

제발 꼭 도와주세요. 알려주시면 은혜잊지 않을께요. 흑흑.. -_-



일단 부모창이 하나 있구요.

다음과 같이 API를 사용해서 자식창을 만들었어요.



RECT rc;

GetClientRect(Parent_Window_Handle, &rc);



// 자식창을 만든다.

CreateWindowEx( WS_EX_TRANSPARENT,

TB_CLASS_NAME,

NULL,

WS_CHILDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_VISIBLE,

rc.left,

rc.top,

rc.right - rc.left,

rc.bottom - rc.top,

Parent_Window_Handle,

NULL,

g_hInst,

(LPVOID)this);



자식창은 WS_EX_TRANSPARENT 속성을 가지고 있어서 투명한데요. 자식창은 꼭 투명해야 하거든요.

근데 문제는 이상하게도 부모창의 어느부분이라도 마우스로 클릭하면 이 자식창이 뿅 사라져요.

그러다가 부모창의 좌우 사이즈가 변경이 되면 다시 이 자식창이 멀쩡하게 나타나구요.



근데 이 자식창의 속성이 WS_EX_TRANSPARENT 가 아니구 다른거라면 이런 현상이 일어나지 않거든요?



하지만 자식창은 꼭 투명이어야 하구, 그러기 위해서 꼭 WS_EX_TRANSPARENT 를 써야한다고

알고 있었는데 이거 쓰면 이렇게 사라지는 문제가 생기구..

이 자식창이 사라지는 문제를 어케 해결하는 방법은 없을까요?



고수님들의 많은 지도와 조언 부탁드려요.

제발 꼭 부탁드려요 -_-



미리 감사드립니다.

1  COMMENTS
  • Profile
    타락천사 2000.09.16 11:12
    안녕하세요.. 타락임다...



    쉽게 생각해서.. 만약 메인폼에서 마우스클릭만 안하면 되는거져?



    그럼 메인폼에서 마우스클릭 메세지를 잡아서 없애면 돼겠네요..^^



    가능하다면.. 메인폼에서 자식창으로 가는 메세지를 체크해보면 되는데....



    그건 버거우실거 가트니..



    그냥 메인폼의 클릭이벤트에서 필요한 작업을 하구.. 메세지를 없애세요...ㅠㅠ



    정공으로 안되면 돌아가는 방법도 있져..^^



    즐푸하세요..



    타락천사......





    heizel wrote:

    > Window API에 관한 질문인데요.. 이거가지구 거의 한달남짓 고생하다가 이제 포기직전이에요.

    > 제발 꼭 도와주세요. 알려주시면 은혜잊지 않을께요. 흑흑.. -_-

    >

    > 일단 부모창이 하나 있구요.

    > 다음과 같이 API를 사용해서 자식창을 만들었어요.

    >

    > RECT rc;

    > GetClientRect(Parent_Window_Handle, &rc);

    >

    > // 자식창을 만든다.

    > CreateWindowEx( WS_EX_TRANSPARENT,

    > TB_CLASS_NAME,

    > NULL,

    > WS_CHILDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_VISIBLE,

    > rc.left,

    > rc.top,

    > rc.right - rc.left,

    > rc.bottom - rc.top,

    > Parent_Window_Handle,

    > NULL,

    > g_hInst,

    > (LPVOID)this);

    >

    > 자식창은 WS_EX_TRANSPARENT 속성을 가지고 있어서 투명한데요. 자식창은 꼭 투명해야 하거든요.

    > 근데 문제는 이상하게도 부모창의 어느부분이라도 마우스로 클릭하면 이 자식창이 뿅 사라져요.

    > 그러다가 부모창의 좌우 사이즈가 변경이 되면 다시 이 자식창이 멀쩡하게 나타나구요.

    >

    > 근데 이 자식창의 속성이 WS_EX_TRANSPARENT 가 아니구 다른거라면 이런 현상이 일어나지 않거든요?

    >

    > 하지만 자식창은 꼭 투명이어야 하구, 그러기 위해서 꼭 WS_EX_TRANSPARENT 를 써야한다고

    > 알고 있었는데 이거 쓰면 이렇게 사라지는 문제가 생기구..

    > 이 자식창이 사라지는 문제를 어케 해결하는 방법은 없을까요?

    >

    > 고수님들의 많은 지도와 조언 부탁드려요.

    > 제발 꼭 부탁드려요 -_-

    >

    > 미리 감사드립니다.