【发布时间】:2010-01-09 10:24:09
【问题描述】:
标题很长,但问题很简单。
我试图让窗口粘在桌面(或别针)上,我可以这样做:
[DllImport("User32.dll")]
static extern IntPtr FindWindow(String lpClassName, String lpWindowName);
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("user32.dll")]
static extern int SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
IntPtr pWnd = FindWindow("Progman", null);
pWnd = FindWindowEx(pWnd, IntPtr.Zero, "SHELLDLL_DefVIew", null);
pWnd = FindWindowEx(pWnd, IntPtr.Zero, "SysListView32", null);
IntPtr tWnd = this.Handle;
SetParent(tWnd, pWnd);
这很好用,但我无法更改透明度或不透明度。
我可以使用 CreateWindowEx 创建一个漂亮的分层透明窗口,但是这种方法不再适用于将其固定到桌面!
有人知道这是怎么做到的吗?
谢谢!
【问题讨论】:
-
为什么这种方法“不再起作用”?
标签: c# desktop transparency createwindowex