protected override IntPtr CreateWindowOverride(ushort atom) { UnmanagedMethods.WindowStyles style = UnmanagedMethods.WindowStyles.WS_POPUP | UnmanagedMethods.WindowStyles.WS_CLIPSIBLINGS; UnmanagedMethods.WindowStyles exStyle = UnmanagedMethods.WindowStyles.WS_EX_TOOLWINDOW | UnmanagedMethods.WindowStyles.WS_EX_TOPMOST; var result = UnmanagedMethods.CreateWindowEx( (int)exStyle, atom, null, (uint)style, UnmanagedMethods.CW_USEDEFAULT, UnmanagedMethods.CW_USEDEFAULT, UnmanagedMethods.CW_USEDEFAULT, UnmanagedMethods.CW_USEDEFAULT, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero); var classes = (int)UnmanagedMethods.GetClassLongPtr(result, (int)UnmanagedMethods.ClassLongIndex.GCL_STYLE); classes |= (int)UnmanagedMethods.ClassStyles.CS_DROPSHADOW; UnmanagedMethods.SetClassLong(result, UnmanagedMethods.ClassLongIndex.GCL_STYLE, new IntPtr(classes)); return(result); }
private void EnableBoxShadow(IntPtr hwnd, bool enabled) { var classes = (int)UnmanagedMethods.GetClassLongPtr(hwnd, (int)UnmanagedMethods.ClassLongIndex.GCL_STYLE); if (enabled) { classes |= (int)UnmanagedMethods.ClassStyles.CS_DROPSHADOW; } else { classes &= ~(int)UnmanagedMethods.ClassStyles.CS_DROPSHADOW; } UnmanagedMethods.SetClassLong(hwnd, UnmanagedMethods.ClassLongIndex.GCL_STYLE, new IntPtr(classes)); }