2009-09-01 18 views
2

開いているすべてのウィンドウの不透明度をC#から変更することは可能ですか?私は窓を最小限に抑えるためにgoogledと私は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のためにGoogleを使用しています:) – Aamir

+1

http://pinvoke.net/このようなもののための良いリソースです。さらに、P/Invokeシグネチャを生成するいくつかの無料ツール、いくつかの商用ツールが用意されています。 PInvoke.NETは上記のサイトから入手できる無料のプラグインで、そこにはpinvoker.netもあります – zebrabox

関連する問題