2009-09-01 8 views
2

C#에서 열린 모든 윈도우의 불투명도를 수정할 수 있습니까? 나는 창문을 최소화하기 위해 인터넷 검색을했고 pInvoke 호출로 가능하다는 것을 알게되었다. 심지어 효과가있었습니다. 마찬가지로 열려있는 모든 윈도우의 불투명도를 C#에서 변경할 수 있습니까?C#에서 모든 윈도우의 불투명도 수정하기

또한 MFC 항목이 아닙니다. 아직도 dll에 노출 된 api 목록을 아는 도구가 있습니까?

답변

7

SetLayeredWindowAttributes API을 사용하면됩니다.

Check this이 API의 pInvoke 버전. 상기 링크에서

샘플 코드 :

[DllImport("user32.dll")] 
static extern bool SetLayeredWindowAttributes(IntPtr hwnd, uint crKey,byte bAlpha, uint dwFlags); 

public const int GWL_EXSTYLE = -20; 
public const int WS_EX_LAYERED = 0x80000; 
public const int LWA_ALPHA = 0x2; 
public const int LWA_COLORKEY = 0x1; 

//set the window style to alpha appearance 
private void button4_Click(object sender, EventArgs e) 
{ 
    SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE)^WS_EX_LAYERED); 
    SetLayeredWindowAttributes(Handle, 0, 128, LWA_ALPHA); 
} 
+0

감사합니다, 그것은했다. 그러나 거기에서 나가이 apis 및 그들의 묘사를 전부 보는 공구가 있는가 ??? – sudarsanyes

+0

아마도 지금 당장은 기억이 나지 않을 수도 있습니다. 나는이 BTW에 대한 구글을 사용합니다 :) – Aamir

+1

http://pinvoke.net/이 물건에 대한 좋은 자원입니다. 플러스 거기에 도구, 당신을 위해 P는/Invoke 서명을 생성합니다 일부 무료, 일부 상업의 무리가 있습니다. PInvoke.NET은 위 사이트에서 무료로 제공되는 플러그인이며 pinvoker.net도 있습니다 – zebrabox