| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using System.Windows;
 
- using System.Windows.Controls;
 
- using System.Windows.Data;
 
- using System.Windows.Documents;
 
- using System.Windows.Input;
 
- using System.Windows.Media;
 
- using System.Windows.Media.Imaging;
 
- using System.Windows.Navigation;
 
- using System.Windows.Shapes;
 
- using System.Windows.Interop;
 
- namespace OpenSEMI.Ctrlib.Window
 
- {
 
-     public class CustomWnd : System.Windows.Window
 
-     {
 
-         private HwndSource curHwndSource = null;
 
-         private HwndSourceHook curHwndSourceHook = null;
 
-         static CustomWnd()
 
-         {
 
-             DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomWnd), new FrameworkPropertyMetadata(typeof(CustomWnd)));
 
-         }
 
-         public CustomWnd()
 
-         {
 
-             CommandBindings.Add(new CommandBinding(SystemCommands.CloseWindowCommand, CloseWindow));
 
-             CommandBindings.Add(new CommandBinding(SystemCommands.MaximizeWindowCommand, MaximizeWindow, CanResizeWindow));
 
-             CommandBindings.Add(new CommandBinding(SystemCommands.MinimizeWindowCommand, MinimizeWindow));
 
-             CommandBindings.Add(new CommandBinding(SystemCommands.RestoreWindowCommand, RestoreWindow, CanResizeWindow));
 
-         }
 
-         #region Window event
 
-         private void CanResizeWindow(object sender, CanExecuteRoutedEventArgs e)
 
-         {
 
-             e.CanExecute = ResizeMode == ResizeMode.CanResize || ResizeMode == ResizeMode.CanResizeWithGrip;
 
-         }
 
-         private void RestoreWindow(object sender, ExecutedRoutedEventArgs e)
 
-         {
 
-             this.WindowState = System.Windows.WindowState.Normal;
 
-         }
 
-         private void MinimizeWindow(object sender, ExecutedRoutedEventArgs e)
 
-         {
 
-             this.WindowState = System.Windows.WindowState.Minimized;
 
-         }
 
-         private void MaximizeWindow(object sender, ExecutedRoutedEventArgs e)
 
-         {
 
-             this.WindowState = System.Windows.WindowState.Maximized;
 
-         }
 
-         private void CloseWindow(object sender, ExecutedRoutedEventArgs e)
 
-         {
 
-             this.Close();
 
-         }
 
-         #endregion
 
-         #region hook
 
-         protected override void OnSourceInitialized(EventArgs e)
 
-         {
 
-             base.OnSourceInitialized(e);
 
-             // 获取窗体句柄
 
-             IntPtr hwnd = new System.Windows.Interop.WindowInteropHelper(this).Handle;
 
-             curHwndSource = HwndSource.FromHwnd(hwnd);
 
-             if (curHwndSource == null)
 
-             {
 
-                 return;
 
-             }
 
-             curHwndSourceHook = new HwndSourceHook(this.WndProc);
 
-             curHwndSource.AddHook(curHwndSourceHook);
 
-         }
 
-         /// <summary>
 
-         /// 系统消息处理
 
-         /// </summary>
 
-         /// <param name="hwnd"></param>
 
-         /// <param name="msg"></param>
 
-         /// <param name="wParam"></param>
 
-         /// <param name="lParam"></param>
 
-         /// <param name="handled"></param>
 
-         /// <returns></returns>
 
-         private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
 
-         {
 
-             IntPtr result = IntPtr.Zero;
 
-             int message = (int)msg;
 
-             switch (message)
 
-             {
 
-                 case 0x001A://0x001A,WM_SETTINGCHANGE
 
-                     break;
 
-                 default:
 
-                     handled = false;
 
-                     break;
 
-             }
 
-             return result;
 
-         }
 
-         #endregion
 
-     }
 
- }
 
 
  |