引入user32.dll
[DllImport("user32.dll")] public static extern uint SetWindowLong(IntPtr h, int n, uint x);
使指定窗体穿透,this.Handle为将要设为穿透效果的窗体句柄
SetWindowLong(this.Handle, -20, 0x20 | 0x80000);
恢复
this.FormBorderStyle = this.FormBorderStyle;
SetWindowLong(
HWND
hWnd,
int
nlndex,
LONG
dwNewLong);
为hwnd句柄的窗体的nindex位置处的值设定一个新值dwNewLong
hWnd为将要设置的窗体的句柄
nIndex为将要修改的窗口的值,值解释
-20 | 设定一个新的扩展风格。 |
-6 | 设置一个新的应用程序实例句柄。 |
-12 | 设置一个新的窗口标识符。 |
-16 | 设定一个新的窗口风格。 |
-21 | 设置与窗口有关的32位值。每个窗口均有一个由创建该窗口的应用程序使用的32位值。 |
-4 | 为窗口过程设定一个新的地址。 |
-8 | 改变子窗口的父窗口,应使用SetParent函数。 |
dwnewlong为要设置的新值