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)); }
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);