[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr GetWindowDC(IntPtr hWnd);
hdc = GetWindowDC(IntPtr.Zero); //参数 0 就是取得整个屏幕的GC句柄
System.Drawing.Graphics g =new System.Drawing.Graphics.FromHdc(hdc);这样获得的是屏幕的句柄(我打开一个窗体还在窗体上画出来了).我的目的是得到windows桌面的句柄,我画出来的东西总是在windows桌面上显示.
public static extern IntPtr GetWindowDC(IntPtr hWnd);
hdc = GetWindowDC(IntPtr.Zero); //参数 0 就是取得整个屏幕的GC句柄
System.Drawing.Graphics g =new System.Drawing.Graphics.FromHdc(hdc);这样获得的是屏幕的句柄(我打开一个窗体还在窗体上画出来了).我的目的是得到windows桌面的句柄,我画出来的东西总是在windows桌面上显示.
如果你打开一个窗口挡住了一部分桌面背景区域,那应该怎么画呢?
是直接画在窗口上,还是根本不画?
实际上肯定会画在窗口上啊GetWindowDC(IntPtr.Zero);我到从来没用过,我都是用GetDesktopWindow来获得桌面句柄的
IntPtr wndDesktop = FindWindow("Progman", "Program Manager");//实现盯桌面,最底层GC句柄
hdc = GetWindowDC(wndDesktop);当时我点击windows的显示桌面它也消失了.
private static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr GetWindowDC(IntPtr hWnd); IntPtr wndDesktop = FindWindow("Progman", "Program Manager");//实现盯桌面,最底层GC句柄
IntPtr hdc = GetWindowDC(wndDesktop); System.Drawing.Graphics g = System.Drawing.Graphics.FromHdc(hdc)
g.DrawString("你好", f, sldbrush, TaskDrawArea);
这样我就可以在桌面上画我想画的东西.有一个问题就是当我们点“显示桌面”按钮时,而我在桌面上画的东西也不见拉。再点一下“显示桌面”
这才显示出来。我的目的:在桌面上画出来的东西总是在windows桌面上显示,点击“显示桌面”对在桌面上画的东西不起作用.