1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace Tools{
class Docking {
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr
FindWindow([MarshalAs(UnmanagedType.LPTStr)] string lpClassName,
[MarshalAs(UnmanagedType.LPTStr)] string lpWindowName);
[DllImport("user32.dll")]
public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
/// <summary>
/// Einzelnes Form auf den Desktop Festkleben
/// </summary>
/// <param name="formToDock">Formular, dass an den Desktop gedockt werden soll</param>
public void StartDocking(Form formToDock) {
IntPtr hwndParent = FindWindow("progman", null);
SetParent(formToDock.Handle, hwndParent);
}
/// <summary>
/// Einzelnes Formular vom Desktop wieder lösen und normal anzeigen lassen
/// </summary>
/// <param name="formToUndock">Formular das wieder normal angezeigt werden soll</param>
public void StopDocking(Form formToUndock) {
IntPtr hwndParent = FindWindow("screenclass", null);
SetParent(formToUndock.Handle, hwndParent);
}
}
}
|