private void SetChildStyle(bool isChild)
        {
            long styles = (long)NativeMethods.GetWindowLongPtr(new HandleRef(_childWnd, _source.Handle), GWL.GWL_STYLE);

            if (isChild)
            {
                if (IntPtr.Size == 4)
                {
                    styles |= System.Convert.ToInt64(NativeMethods.WindowStyles.WS_CHILD);
                }
                else
                {
                    styles |= (long)NativeMethods.WindowStyles.WS_CHILD;
                }
            }
            else
            {
                NativeMethods.WindowStyles nonChild = (NativeMethods.WindowStyles) 0xffffffff ^ NativeMethods.WindowStyles.WS_CHILD;
                if (IntPtr.Size == 4)
                {
                    styles &= System.Convert.ToInt64(nonChild);
                }
                else
                {
                    styles &= (long)nonChild;
                }
            }
            NativeMethods.CriticalSetWindowLong(new HandleRef(this, _source.Handle), (int)GWL.GWL_STYLE, new IntPtr(styles));
        }
예제 #2
0
 public static extern IntPtr CreateWindowEx(NativeMethods.WindowStylesEx dwExStyle, [MarshalAs(UnmanagedType.LPStr)] string lpClassName, [MarshalAs(UnmanagedType.LPStr)] string lpWindowName, NativeMethods.WindowStyles dwStyle, int x, int y, int nWidth, int nHeight, IntPtr hWndParent, IntPtr hMenu, IntPtr hInstance, IntPtr lpParam);