随笔 - 46  文章 - 0 评论 - 29 trackbacks - 0

 /// <summary>
    /// 禁用窗体最大最小按键
    /// </summary>
    internal static class WindowExtensions
    {
        [DllImport("user32.dll")]
        internal extern static int SetWindowLong(IntPtr hwnd, int index, int value);

        [DllImport("user32.dll")]
        internal extern static int GetWindowLong(IntPtr hwnd, int index);

        internal static void HideMinimizeAndMaximizeButtons(System.Windows.Window window)
        {
            const int GWL_STYLE = -16;

            IntPtr hwnd = new System.Windows.Interop.WindowInteropHelper(window).Handle;
            long value = GetWindowLong(hwnd, GWL_STYLE);

            SetWindowLong(hwnd, GWL_STYLE, (int)(value & -131073 & -65537));

        }

        internal static void DisableMinimizeButton(System.Windows.Window window)
        {
            const int GWL_STYLE = -16;
            IntPtr hwnd = new System.Windows.Interop.WindowInteropHelper(window).Handle;
            long value = GetWindowLong(hwnd, GWL_STYLE);

            SetWindowLong(hwnd, GWL_STYLE, (int)(value & -131073));
        }

        internal static void DisableMaximizeButton(System.Windows.Window window)
        {
            const int GWL_STYLE = -16;
            IntPtr hwnd = new System.Windows.Interop.WindowInteropHelper(window).Handle;
            long value = GetWindowLong(hwnd, GWL_STYLE);

            SetWindowLong(hwnd, GWL_STYLE, (int)(value & -65537 & -131073));
        }
    }

  用法

 public Window2()
        {
            InitializeComponent();
            this.SourceInitialized += (x, y) =>
            {
                WindowExtensions.DisableMinimizeButton(this);
            };
        }

  

posted on 2020-09-22 15:10  永恒921  阅读(83)  评论(0编辑  收藏