protected void CreateFakeWnd() { WNDCLASSEX wndClsEx = new WNDCLASSEX(); wndClsEx.Init(); wndClsEx.style = WndClassType.CS_VREDRAW | WndClassType.CS_HREDRAW; wndClsEx.lpfnWndProc = m_DefWndProcDelegate; wndClsEx.cbClsExtra = 0; wndClsEx.cbWndExtra = 0; wndClsEx.hInstance = NativeMethods.GetModuleHandle(null); wndClsEx.hIcon = IntPtr.Zero; wndClsEx.hIconSm = IntPtr.Zero; wndClsEx.hCursor = IntPtr.Zero; wndClsEx.hbrBackground = IntPtr.Zero; wndClsEx.lpszClassName = m_WndClsName; wndClsEx.lpszMenuName = null; bool success = NativeMethods.RegisterClassEx(ref wndClsEx) != 0; Debug.Assert(success, "RegisterWndClass failed."); UInt32 dwExStyle = WS_EX.WS_EX_LAYERED | WS_EX.WS_EX_TRANSPARENT | WS_EX.WS_EX_NOACTIVATE | WS_EX.WS_EX_LEFT; UInt32 dwStyle = (uint)WindowStyle.WS_VISIBLE | (uint)WindowStyle.WS_OVERLAPPED; m_FakeWndHandle = NativeMethods.CreateWindowEx((Int32)dwExStyle , m_WndClsName , null , (Int32)dwStyle , this.Left , this.Top , m_BgImg.Width , m_BgImg.Height , this.Handle , IntPtr.Zero , NativeMethods.GetModuleHandle(null) , IntPtr.Zero ); Debug.Assert(NativeMethods.IsWindow(m_FakeWndHandle), "CreateWindowEx failed."); }