WinForms フォームをデスクトップ アイコンの後ろに、壁紙の前に配置するにはどうすればよいでしょうか? デスクトップをフォームの親にするには、次を使用します。
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
IntPtr desktopHandle = (IntPtr)FindWindow("Progman", null);
WallForm wallWindow = new WallForm();//WinForms Form
...
private void SwitchParent()
{
wallWindow.Show();
SetParent(wallWindow.Handle, desktopHandle);
//wallWindow.SendToBack();
}
これは機能しますが、フォームがデスクトップ アイコンの前に配置されます。フォームで SendToBack を呼び出すと、おそらく壁紙の後ろに消えます。アイコンとデスクトップの背景の間にフォームを配置するにはどうすればよいですか?