2010-05-09 5 views
5

반투명 한 형식을 만들었습니다. 사람들이 양식 영역을 클릭 할 수 있고 양식을 클릭하지 못하도록하고 싶습니다. 대신 양식 아래에있는 무엇이든 클릭 이벤트를 수신하고 싶습니다.C#의 클릭 연결 형식

+0

가능한 [Visual C# Window Forms 투명도 클릭?] (http://stackoverflow.com/questions/112224/click-through-transparency-for-visual-c-window-forms) – Joey

+0

아래 내용은 무엇입니까? 형태? – Ikaso

답변

3

당신은 SetWindowLong으로이 작업을 수행 할 수 있습니다

int initialStyle = GetWindowLong(this.Handle, -20); 
SetWindowLong(this.Handle, -20, initialStyle | 0x80000 | 0x20); 

몇 매직 넘버는 여기에 있습니다 :

  • -20-GWL_EXSTYLE

    는 확장 윈도우 스타일을 가져옵니다.

  • 0x80000 - WS_EX_LAYERED

    layered window 작성합니다.

  • 0x20-WS_EX_TRANSPARENT

    창 아래에 형제 자매가 (동일한 스레드에 의해 만들어진이) 페인트 될 때까지이 스타일로 만든 창 페인트되지 않도록 지정합니다. 기본 형제 윈도우의 비트가 이미 칠해져 있기 때문에 창이 투명하게 나타납니다. 같은 this one 모든이 작업을 수행하는 방법에 대한 웹을 통해 수많은 기사가있다

있습니다.