2009-09-14 4 views
0

클릭 수에 투명 (예 : 아래로 창을 통과)하는 HWND를 원합니다.Win32 : HWND를 클릭에 투명하게 만들려면 어떻게해야합니까?

처음에는 WS_EX_TRANSPARENT를 시도했지만 모든 종류의 다시 그리기 문제가 있습니다. 밑에있는 창은 내 HWND를 끌고있다.

검색을 수행하여 HTTRANSPARENT을 (를) 반환하여 WM_NCHITTEST에 응답하는 제안을 발견했습니다. 이것은 작동하는 것처럼 보였지만 MSDN은 밑에있는 창들이 같은 스레드에있을 때만 올바르게 작동한다고 말합니다. HTTTRANSPARENT를 검색하면 몇 가지 문제가 발생했습니다 (http://www.virtualdub.org/blog/pivot/entry.php?id=147)

그래서 다른 아이디어가 있습니까?

+0

나는 WM_NCHITTEST를 사용해 본 적이 한번도 없었습니다. 귀하의 응용 프로그램이 다른 스레드에 창을 만드나요? –

+0

예, 이것은 많은 스레드에서 호출되는 것을 처리하도록 특별히 설계된 Ui 라이브러리의 일부입니다. –

답변

1

모든 마우스 메시지를 캐치하여 PostMessage로 기본 창으로 전달하십시오.

+0

훌륭한 점 외에는 ... 어떻게 창문을 아래에 놓았습니까? 그것은 모든 프로세스에 적용됩니까? –

+0

GetWindow (http://msdn.microsoft.com/en-us/library/ms633515(VS.85).aspx)를 사용하여 최상위 창을 모두 열거하고 위치를 확인해야합니다. 하나를 찾으면 ChildWindowFromPoint (http://msdn.microsoft.com/en-us/library/ms633558(VS.85).aspx)를 사용합니다. –

관련 문제