WPF SourceInitialized 事件

这里先介绍一个窗体的事件SourceInitialized,这个时间发生在WPF窗体的资源初始化完毕,并且可以通过WindowInteropHelper获得该窗体的句柄用来与Win32交互。

具体可以参考MSDN http://msdn.microsoft.com/en-us/library/system.windows.window.sourceinitialized.aspx

我们通过重载OnSourceInitialized来在SourceInitialized事件发生后获取窗体的句柄,并且注册全局快捷键

   private const Int32 MY_HOTKEYID = 0x9999;
    
    protected override void OnSourceInitialized(EventArgs e)
    {
      base.OnSourceInitialized(e);
  
       IntPtr handle = new WindowInteropHelper(this).Handle;
       RegisterHotKey(handle, MY_HOTKEYID, 0x0001, 0x72);
  }

关于几个常熟的解释

MY_HOTKEYID 是一个自定义的ID,取值范围在0x0000 到 0xBFFF。之后我们会根据这个值来判断事件的处理。

RegisterHotKey的第三或第四个参数可以参考第一步

原文地址:https://www.cnblogs.com/ExMan/p/3706268.html