Example #1
0
        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.");
        }