2009-09-03 9 views
1

デスクトップに貼り付けるアプリケーションがあります。デスクトップに固執すると、誰かがWindows + Dまたはデスクトップアイコンを表示するたびにデスクトップにアプリケーションが表示されます。Vistaのデスクトップに貼り付ける

ユーザーは、デスクトップ上でアプリケーションを見つけていつでも場所を変更できますが、デスクトップ上には常に残ります。

WinAPIのSetParentメソッド(this.Handle、FindWindow( "Progman"、null));を使用して、アプリケーションの親をデスクトップに設定することでXP上で行うことができます。

Vistaでは、デスクトップにフォーカスを当てるたびに、デスクトップにフォーカスが当たったときにウィンドウの周りに灰色の背景が描画されます。私のウィンドウが動かされると、この背景が消えず、醜い四角形がデスクトップに残ります。 Windows + Dをクリックすると、すべて消えます。 これはXPではまったく起こりません。

クライアントは.NET 3.0とWPFをベースにしています。

なぜそれが起こり、どのようにそれを解決するか?フォームのロード希望は完全にこれはあなたの問題を解決しながら、

答えて

0

は、次のコードを使用して関数にウィンドウハンドルを渡す

public void SetFormOnDesktop(IntPtr hwnd) { 
IntPtr hwndf = hwnd; 
IntPtr hwndParent = FindWindow("ProgMan", null); 
SetParent(hwndf, hwndParent); 
} 
関連する問題