Rsdn.Shortcuts.ShortcutManager.PreFilterMessage C# (CSharp) Method

PreFilterMessage() public method

public PreFilterMessage ( Message &msg ) : bool
msg System.Windows.Forms.Message
return bool
		public bool PreFilterMessage(ref Message msg)
		{
			switch (msg.Msg)
			{
				case WM_SYSKEYDOWN: // Обработка шорткатов "Alt + xxx"
				case WM_KEYDOWN: // Обработка обычных шорткатов
					var ctrl = GetControlFromHandle(msg.HWnd);
					var keyData = (Keys)(int)msg.WParam | Control.ModifierKeys;

#if false //DEBUG
					Console.WriteLine("msg.Msg: {0}, keyData: {1}", msg.Msg, keyData);
#endif

					var shortcutNode = FindShortcutNode(ctrl);

					if (shortcutNode != null)
						if (shortcutNode.ProcessMessageKey(ctrl, keyData, this))
							return true;

					break;
			}

			return false;
		}
		#endregion